2009年7月24日のブックマーク (3件)

  • iPhoneアプリ開発ブログ in 大阪 | スタティックライブラリにおけるカテゴリの取り扱い

    Objective-Cにおけるカテゴリの概念は実行時のシンボル解決として最たるものですが、そうであるが故にスタティックライブラリとの親和性がちょっと悪い。 スタティックライブラリとリンクして実行バイナリを生成する際、リンク時にすべてのシンボルを解決するため、未使用のシンボルは実行バイナリには含まれない。 なので、カテゴリを含むスタティックライブラリを使用する場合、普通にビルドすると実行時にシンボル解決ができないというエラーが発生する。 で、どうすればよいかというと、リンカフラグとして -ObjC を追加するだけでOK。 ld のマニュアルによれば↓ということだそうです。 Loads all members of static archive libraries that define an Objective C class or a category. 元記事はこちら。 Static O

  • iPhoneアプリ開発ブログ in 大阪 | iPhoneで独自ライブラリを使用する

    NDA(Rev. 10-20-08)の3.3.2によると、独自のフレームワークは作成できないようなので、独自の共通ライブラリなんかを作る場合は static library (*.a) しか選択肢はないようです。 これ自体は特に問題ではなく、「新規ターゲット」から「static library」を選択し、必要なソースを加えていけばOK。 あとは、アプリケーションのプロジェクトにおいて、便利な「依存関係」を利用すればできあがり。 これは、アプリケーションとライブラリのプロジェクトファイルが別々である場合に、アプリケーションの操作やSDK・構成の設定などを依存するライブラリのプロジェクトに自動的に継承してくれるというもの。これ自体はiPhoneとは全く関係ない(OSXの開発でも有効)んですが、iPhone開発においては、SDKや構成の選択変更を頻繁に行うので非常に便利です。 どうするかというと

  • iPhoneアプリ開発ブログ in 大阪 | スタティックライブラリを結合する

    iPhoneで独自ライブラリを使用する」によって、アプリケーションプロジェクトにスタティックライブラリへの依存関係を追加することができました。 独自のスタティックライブラリを複数作成している場合、これら複数のライブラリを新規プロジェクトに追加していくのは結構面倒です。 これらのライブラリはスタティックライブラリなので、つまるところは単なるオブジェクトの固まりです。そこで、依存しあうスタティックライブラリ同士をさらに結合すればすっきりします。(もちろん、個々のライブラリに依存関係が全くない場合には無縁の話ですが) たとえば、A, B, Cの3つのライブラリが存在していて、ライブラリAがBとCに依存しているような場合、ライブラリAを使用するアプリケーションプロジェクトにライブラリA, B, Cへの依存関係をすべて設定するのではなく、 ライブラリAのプロジェクトにBとCへの依存関係を設定し、ア