7

ARCがオンになっているかどうかをコンパイラに問い合わせて、その値に基づいて条件付きでコンパイルする方法はありますか?例えば、私が持っているプロトコル:ARCを使用する場合の条件付きコンパイル

@protocol ProtocolA 

@required 
-(void)protocolMethodOne 

@optional 
-(void)protocolMethodTwo; 

@end 

を私はARCを使用している場合は、私はARCを使用しているときprotocolMethodAをオプションにしたい、とARCを使用していないときに必要。これは、このメソッドを使用する主な理由の1つがオブジェクトインスタンスをdeallocするためです。そうは言って

は、ここで私が起こるしたいものだ。

@protocol ProtocolA 

#ifdef SOME_ARC_VARIABLE 
    @optional 
#else 
    @required 
#endif 
-(void)protocolMethodOne 

@optional 
-(void)protocolMethodTwo; 

@end 

答えて

14

あなたはARCが有効にされた場合には1に拡大していきます#if __has_feature(objc_arc)を行う必要があります。

これはClangのARC docsからのものです。

+0

驚くばかりです。これを見て、それを見つけることができませんでした。よく働く! – FreeAsInBeer

関連する問題