Xcode

スタティックライブラリィを扱う (その後)

以前に2回に渡ってiOSの開発でスタティックライブラリィの扱いについて書いた。[Objective-C][Xcode][iOS]Xcode 4.3でスタティックリンクライブラリィを扱う (その1) [Objective-C][Xcode][iOS]Xcode 4.3でスタティックリンクライブラリィを扱う (その2)この…

Target Membership

スタティックライブラリのまとめでも書いたが、ライブラリィプロジェクトはヘッダファイルを公開、他のプロジェクトでインポートする必要があるため、ヘッダファイルのメンバーシップを"public"にする必要があった。(デフォルトは"project")がしかし、この作…

Incompatible pointer types sending

例えばUITextField*型のシグネチャに対してUITextView*型の変数をセットするとこの警告が出る。主にパラメタが要求している型と互換性が無い値をセットしているとコンパイラが判断した場合に出る警告だが、エラーではなく警告ってのが凄い。しかし、この警告…

Xcode 4 完全攻略

Xcode 4 完全攻略作者: STUDIO SHIN出版社/メーカー: ソフトバンククリエイティブ発売日: 2012/03/29メディア: 大型本購入: 2人 クリック: 41回この商品を含むブログ (8件) を見るXcodeの解説、それも4.xの日本語情報はまだまだ少ないので、欲しくなってしま…

Xcode 4.3でスタティックリンクライブラリィを扱う (その2

さて、今日はアプリケーションからスタティックライブラリをリンクする設定を行う手順をまとめる。 外部のライブラリィを自分のプロジェクトに組込む等、普段はこちらのほうが有用だろうか。 2.アプリケーションプロジェクトでスタティックリンクライブラリ…

Xcode 4.3でスタティックリンクライブラリィを扱う (その1)

一度試して挫折するも、ちょっとしたことで上手くいったのでこれも備忘録としてメモ。iOSはMacのようにローダブルバンドル※1は扱えないので、外部のライブラリィはソースコードとして取り込むか、静的(スタティック)なライブラリィとして組み込むしか無い。 …

実機の登録とデバッグ

さて、ある程度動く物が出来たので、いよいよ実機でテストしてみたいなと思った時、Androidであればなんの事前準備も必要無く、「提供元が不明のアプリケーションをインストール」にチェックをすることでアプリケーションを実機にインストールすることができ…

Xcode 4.3.1

iOS5.1、話題の新iPadのRetinaにも対応しているバージョンが3/8にアップされている。変更点は Includes SDKs for Mac OS X 10.7 Lion and iOS 5.1 New code signing workflow supports signing OS X apps with Developer ID Adds installation of command-li…

XcodeによるGUIのオートメーションテスト

前回書いたようにXcodeはOCUnitによるObjective-Cのユニットテストを簡単に実行できる。ではGUIのテストはどうするのだろう。GUIのテストといっても、大きく分けて・実際にGUIを生成して操作を模したテスト(オートメーションテスト) ・GUIを模したモック(Moc…

Xcode(OCUnit)によるユニットテスト

XcodeはOCUnitによるObjective-Cのユニットテストに標準で対応しており、アプリケーション又はライブラリィ用のプロジェクトを作成する際に同時にテストプロジェクトを作りさえすれば、あとはテスト用のクラス簡単にユニットテストを開始することができる。…

weakはどこに?

Xcode4.3だが、@propertyディレクティブのオプションに弱参照を表す"weak"があったはずなのに候補に全く出てこない。 @interface HogeClass : NSObject @property (nonatomic, strong) NSString* prop1 @property (nonatomic, w..| ) NSString* prop2 @end X…

xcode-selectコマンドでXcodeのインストールディレクトリを変更する

Xcodeを4.2から4.3に上げた所xcodebuildやMacPorts、AppCode(評価中)が動作しなくなる現象が発生した。Xcodeにはxcode-selectというコマンドがあり上記のツールはこのコマンドの実行結果を使用しているが、Xcodeのインストール場所とパッケージが4.3で変わっ…

not available in automatic reference counting mode

現在、rutime.hを使って、それぞれ任意のメソッドを実行できる、任意のプロパティを読み書きできる、インスタンスフィールドを読み書きできるユーティリティをそれぞれ書いているのだが、最後に書いたインスタンスフィールドにアクセスするコードで、どうし…

Xcode4.3からは/Developer以下がパッケージングされている

Xcode 4.3に上げてからクラスやカテゴリ等のテンプレートのコメントを修正しようと探したが、全く見つからない。一体どうなっているのと調べてみたが、どうやら4.3からXcodeはひとつのアプリケーションのバンドル構造にパッケージ※されており、従来の/Develo…

Xcode 4.3

知らない間にXcodeが4.3になっていた。(2/18にリリースされたらしい) What's New In Xcode: What’s New in Xcode - “New Features in Xcode 4.3”主な変更点はリンク先に記述されている通りで、ツール関係がXcodeに統合されたり、インストール先が/Developer…

module is not part of the build phase of any targets in this workspace

テスト用のモジュールのクラス名を変更しようと思って"Refactoring->Rename"で名前を変更しようとしたのだが、上手くいかない。 意味がわからないなぁと思って調べていたのだが、これもまたXcode固有のバグのようだ。 xcode - "aFile.m" is not part of the …

シンボリック・ブレークポイント

Unrecognized Selectorのようにどこのメソッドが実行された際に発生したか判り難いエラーの場合、以下のシンボリック・ブレークポイントを作ってやることで、直接的にどこでエラーが発生したかが分かり易くなる。 -[NSObject doesNotRecognizeSelector:]NSOb…

Xcode4.2がフリーズする

いつの間にか、Xcode(4.2)がフリーズするようになっていた。最初に発生したのはデバッグ中に発生したエラーの直後だったので、まあそういうこともあるかなどとブツブツ言いながらXcodeを強制終了していたのだが、どうも規則性があるようで酷い時は数分〜数十…

does not declare a method with selector

NSStringクラスのカテゴリ(クラスエクステンション)を書いていた所、コンパイルで以下のようなエラーに遭遇した。 Receiver type 'NSString' for instance message does not declare a method with selector 'capitalizedFirstOnly' 初心者の私には、まるで…

XcodeとLionの便利すぎる関係

Eclipseしかり、Visual Studioしかり、現代のIDEには使いやすい直感的なソースコードナビゲーションは必須だ。MacBook Air(Lion)ではXcodeのエディタのヒストリを、タッチパッドのマルチタッチジェスチャによるスワイプナビゲートを使ってまるで本のページを…

IBOutletでView以外のオブジェクトを扱う

最近分ったがIBOutletはGUI部品であるViewを扱うだけでなく、通常のオブジェクトを扱うこともできる。例えば、テンプレートからViewControllerクラスをxibファイルと共に作成したとしよう。そのxib中の通常のオブジェクトをアーカイブする。画面を構成するた…

ゾンビオブジェクトを検出する (Instruments編)

先日のエントリではXcodeと環境変数、アロケーションヒストリログを使用して解放済みのオブジェクト=ゾンビオブジェクトを検出する方法を書いた。これでも十分使えるが、Xcodeではもっとスマートにこの作業を行うことが出来る。 Instruments Xcode4.2と共に…

深淵へ - ゾンビオブジェクトを検出する (Xcode編)

iOSプログラミングの学習と称して書籍やネット上のサンプルコードを試しているが、「iOSプログラミング 第2版」の10章のコードにて、意図しない所で"EXC_BAD_ACCESS"に遭遇した。 "EXC_BAD_ACCESS"といえば噂には聞いていたが、iOSで最もよく遭遇する異常終…

ブレークポイントを取り除く

今までの習慣上、Xcodeで上のように設定したブレークポイントを除去するためにクリック(トグル)やダブルクリックを試したのだが、一向に消えてくれない。 コンテキストメニューで"Delete BreakPoint"は出てくるので、これでコントロールするしかないと思って…

IBOutletとIBAction その2

IBOutletはインスタンス変数又はプロパティとViewを接続(アウトレット)する仕組みだったが、IBActionはGUIを操作した際に実行する処理(メソッド)とViewとを接続する仕組みだ。 IBAction IBActionのコードへの差込みはIBOutletと同様にクラスのヘッダファイル…

IBOutletとIBAction (その1)

GUIを操作した結果を処理に結びつける方法はいろいろあるが、Xcode4においてはIBOutletとIBActionという魔法を使う。 IBOutlet IBは"Interface Builder"の略だが、問題はアウトレットという言葉だ。今まで数ある開発環境を見てきたが、「アウトレット」とい…

]Window-BasedとView-Based Applicationの違い

先日紹介したXcode4.2で使える"Window-Based Application"テンプレートから作った新規プロジェクト(WndBaseTest)のプロジェクト構成。Viewを配置するのはMainWindow.xibであり、それをアウトレットで接続する先はWindowクラスを集約しているWndbaseTestAppDe…

Window-based Template

取りあえずは原著のサポートサイトで勉強してこようと思う。 iOS Programming: The Big Nerd Ranch Guide (2nd Edition) ここのサイトの中に「Intraction Forum」というサポートサイトが用意されており、書籍の章毎にフォーラムが開設されている。覗いてみる…

Window-basedとView-based

iOSプログラミング 第2版を読んでいるのだが、いきなり詰まっている。この書籍、Xcode 4.1ベースで書かれているのでシンプルなプロジェクトを作成するケースではいわゆる「Window-based」をテンプレートとして使用しているのだが、私が今使用しているのは…