2

比較的簡単な質問がありますが、それについて回答を得たいと思っています。

iOS に MyLibrary.a という静的ライブラリがあるとします。

このライブラリには、次を呼び出す .m ファイルがあるとします: "#import SomeHeaderWhichDoesNotYetExist.h" -- ただし、"#import SomeHeaderWhichDoesNotYetExist.h"が呼び出されたときに、プロジェクトに SomeHeaderWhichDoesNotYetExist.h が必ずしも存在するとは限りません (そのタイトルでも示唆されています)。例えば、

#ifdef something
#import SomeHeaderWhichDoesNotYetExist.h
#endif

誰かが Mylibrary.a を使用すると、後でSomeHeaderWhichDoesNotYetExist.h を実装する可能性があり、MyLibrary.a が上記のコードで指定されているように自動的に使用できるようにする必要があります。これは可能だと思いますか?

ありがとうございました。

4

2 に答える 2

2

ご覧のとおり、よく似た種類を使用しています

#ifdef TARGET_OS_IPHONE 
    // iOS
#elif defined TARGET_IPHONE_SIMULATOR
    // iOS Simulator
#elif defined TARGET_OS_MAC
    // Other kinds of Mac OS
#else
    // Unsupported platform
#endif

だから私は言うでしょう、はい、できます!!!

しかし、定義する必要がありますsomething

于 2012-12-05T13:42:16.110 に答える
0

いいえ、できません。少なくとも、あなたが示した方法ではできません。

あなたが示した条件付きコンパイルブロックはプリプロセッサ用であり、コンパイル前に呼び出されます。このように新しいものを含めたい場合は、再構築する必要があります。

于 2012-12-05T13:26:16.720 に答える