2011-06-28 9 views
0

条件付きでプロトコルを含めることはできますか?たとえば、動作しないコードがありますが、私が何を参照しているのかを理解しておく必要があります。私は、広告がオンになっている場合のみ、AdWhirlDelegateのインターフェースが必要になります。コンパイル時に条件付きでプロトコルを含めるにはどうすればよいですか?

#if ADS_SUPPORTED 
@interface MyAppDelegate : NSObject <UIApplicationDelegate,AdWhirlDelegate> 
#else 
@interface MyAppDelegate : NSObject <UIApplicationDelegate> 
#endif 

を...しかし、その後IBは少し混乱することができます

// this works fine 
#if ADS_SUPPORTED 
#import "AdWhirlView.h" 
#endif 

// this does NOT work 
@interface MyAppDelegate : NSObject <UIApplicationDelegate #if ADS_SUPPORTED ,AdWhirlDelegate #endif> 

答えて

2

あなたは行うことができます。これに代わるものを提示するthis answerを参照してください。

プリプロセッサディレクティブのみが非で動作する他の#/#endifの構造/場合

は、二回プロトコルおよび#内部でブロックされないものと一つにインタフェース宣言を繰り返し動作しません

0

あなたのヘッダーのようにネストされた方法が含まれます。