1

タイプ Static Linked Library の新しいプロジェクトを作成しました。

コード (以前はアプリで動作していた) をライブラリに移動し、すべての xib ファイルをアプリに残しました。

エクスポート ディレクトリを変更し、派生データ フォルダーからライブラリ ファイルを追加して、コンパイル済みバージョンとリンクを取得するようにしました。

ライブラリをバンドルに追加し、iPhone Explorer を使用してアプリ内にあることを確認しました

ID インスペクタのカスタム クラス フィールドでカスタム ビュー タイプを削除して選択することにより、xib ファイルが新しいビュー タイプを認識したことを確認しました。

<> VS "" の変更を反映するようにすべての #import コマンドを変更し、アプリをコンパイルしました。

ただし、カスタム クラスのメソッドはどれも実行できません。NSLog は、クラスがカスタム派生クラスではなく、その基本対応物であることを報告します。

私は途方に暮れており、ライブラリで作業する必要があるすべてのコードを変換するのに長い時間を費やしました。誰かがこれを手伝ってくれることを願っています。

4

1 に答える 1

2

この問題に関して、Objective C のコンパイラは、デフォルトでカテゴリとカスタム クラスをライブラリにロードしないことが判明しました。これを克服するには2つの方法があります。

そして、ここにあなたのオプションがあります。

  1. そのクラスまたはカテゴリを「アクティブ化」するために呼び出されるカテゴリで、アクティブ化タイプのメソッドを作成します。これは、アプリケーションが nib ファイルをロードする前に行う必要があります。そして、お尻が少し痛いようです。しかし、これは私が最初にこの問題を克服した方法でした。

  2. アプリケーションを実行する前に、Objective C にすべてのライブラリをロードし、ライブラリ内のすべてのカテゴリとクラスをアタッチするように指示するリンカー フラグを追加します。(これは、正しい場所から正しいファイルを #import(ing) した上で行う必要があります。以下に図を示します。検索用のフラグを提供します。

ここに画像の説明を入力

-ObjC は私が最初に追加したものですが、 -all_load は本当にうまくいきました。

他の人がこの経験から利益を得られることを願っています。

于 2012-07-06T19:36:34.463 に答える