0

メインのインポートとしてファイルで名前が付けられたフレームワークがあるA.frameworkとします。A.hクライアント アプリがこのフレームワークを使用する標準的な方法は次のとおりです。

#import <A/A.h>

ここで、クライアント アプリが実際にリンクを解除し、すべての機能を取得するためにのみリンクできるようB.frameworkに、その機能を自分に組み込み/オーバーライド/実装したい別のフレームワークが存在するとします。言い換えれば、私はすべての機能を内部に実装しており、経由でインポートできるファイルがありますA.frameworkB.frameworkA.frameworkB.frameworkB.frameworkA.framework

#import <A/B.h>

#import <B/B.h>ユーザーがすべての呼び出しをに置き換えた場合、 の#import <A/B.h>すべての機能を利用できるようになりB.frameworkます。

私の質問は次のとおりです。ユーザーのすべての呼び出しをB.frameworkに置き換えることなくリンクを解除し、代わりにそれらをインポートすることはできますか?#import <B/B.h>#import <A/B.h>#import <B/B.h>A.framework

4

1 に答える 1

1

あなたがそれを説明した方法、はい。すべてのクラス/メソッド/などの場合。A/B.hから取得される内部にB/B.hあり、A.framework が B.framework を直接参照しない限り、B.framework は不要になりました...それが理にかなっている場合...

次のように考えてください。

禁止されている

この場合、B.framework のリンクを解除すると、A.framework の Bh ファイルが機能するには B.framework が必要になるため、Bh で何かを実行しようとするとエラーが発生します。

ただし、次のようになっている場合:

許可された

したがって、B.framework の重要なコンポーネントは実際には A.frameworkにあります (それらを統合しました)。つまり、 A.frameworkは決して参照<B/*>しません。

お役に立てば幸いです。

于 2013-04-28T02:44:16.060 に答える