1

静的ライブラリでカテゴリを使用する場合、認識されないセレクター。

私はグーグルで検索し、これを見つけましたか? http://www.dribin.org/dave/blog/archives/2006/03/13/static_objc_lib/

しかし、私はまだ混乱しています:

1、 と がobject.h/.mありobject+category.h/.m、があり#import "object+category.h"object.mこれらをソース コードとしてプロジェクトに追加すると、正常に動作します (認識されないセレクタ エラーは発生しません)。しかし、これらを静的ライブラリに準拠させてプロジェクトに追加すると、認識されないセレクターでクラッシュします。

では、これら 2 つの方法の違いは何でしょうか。なぜ最初の方法ではセレクターを見つけることができ、2番目の方法では見つけることができないのですか?

2、この記事には、「最適化として、リンカーはシンボルの解決に必要なオブジェクト ファイルのみを選択する」と書かれています。スタティック ライブラリとソース コードも同じですか? プロジェクトのソース コードとして andがobject.h/.mあり、決して使用されない場合を意味します。これらのコンパイル済みファイルはすべて、最終的な .app にリンクされますか?object+category.h/.mobject+category.h/.m.o

object+category.o3、各メソッドではなくクラスごとにシンボルが作成されている場合、xcode リンカはどのようにして必要であることを認識し、それを .app にリンクしますか? そしてobject+category.o、コンパイル時または実行時にリンクが発生するのはいつですか?

4

0 に答える 0