2012-01-15 14 views
2

私はいくつかのC関数を持っています。そして私は[-release]を含むObjective-Cコードを呼び出します。コンパイラの決定方法は現在ARCモードですか?

問題は、このコードをARCターゲットまたは非ARCターゲットの両方でコンパイルする必要があることです。だから私は、事前定義されたコンパイラフラグによって条件付きコンパイルが必要だと思う。これにはどんな旗を使うべきですか?

答えて

2

http://lists.apple.com/archives/xcode-users/2011/Aug/msg00252.htmlから:

LLVMコンパイラのチェックが__has_featureと呼ばれています。 ARCはあなたが確認できる の機能の1つです。

#ifndef __has_feature 
// not LLVM Compiler 
#define __has_feature(x) 0 
#endif 

#if __has_feature(objc_arc) 
// compiling with ARC 
#else 
// compiling without ARC 
#endif 
関連する問題