2012-02-09 9 views
2

#ifdef #imports in objective-c?例えば#ifdef #imports?

#ifdef USE_A 
#import "ClassA.h" 
#endif 

#ifdef USE_B 
#import "ClassB.h" 
#endif 
+5

あなたはそれを試しましたか? –

+0

さて、うまくいきませんでしたが、ここに誰かが解決策を持っていると思っていました。私は客観的なものに精通していません。 – user1198770

+0

またはそれ以外の方法がある場合は、 – user1198770

答えて

1

私はObjective-Cのために、以下のライブラリがインポートされることを保証するためにその#ifdef __OBJC__ディレクティブを信じています。そのifの目的は、必要でない限りそれらをインポートしないことです。また、このようにしても、コードはCファイルの機能を使用することができる通常のCコードと互換性があります(少なくともそれは私に似ています)。これらのライブラリのみにObjCが定義されている場合、それはあなたがObjective Cの用にコンパイルされたときにライブラリがONLYインポートされることを保証していない標準Cの

#ifdef __OBJC__ 
#import <foundation/foundation.h> 
#import <uikit/uikit.h> 
#import <coredata/coredata.h> 
#endif 
5

含めることではい、この:

#ifdef USE_A 
#import "ClassA.h" 
#endif 

は有効です。 。

0

はい、対話型では#ifdef#importsを使用できます。

#ifdef MACRO 

controlled text 

#endif /* MACRO */ 

このブロックを条件付きグループといいます。 MACROが定義されている場合にのみ、制御されたテキストがプリプロセッサの出力に含まれます。 MACROが定義されていれば条件は成功し、そうでなければ失敗します。詳細はGCC online docsをご覧ください。

関連する問題