如何确定编译器目前处于ARC模式?

时间:2012-01-15 19:42:49

标签: automatic-ref-counting clang compiler-flags

我有几个inline static C函数。我称之为Objective-C代码,包括[-release]

问题是我必须编译此代码的ARC或非ARC目标。所以我认为我需要通过预定义的编译器标志进行条件编译。我应该用什么旗帜?

1 个答案:

答案 0 :(得分:2)

来自http://lists.apple.com/archives/xcode-users/2011/Aug/msg00252.html

  

LLVM编译器的检查称为__has_feature。 ARC就是其中之一   您可以查看的功能。

#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