检查预编译中的ARC

Pet*_*ese 31 objective-c automatic-ref-counting

我有一个iOS重构库,我想使用它而没有ARC编译选项.是否有一种方法可以在编译期间检测#ifdef,如果有ARC可用?

Dav*_*ong 49

是的,您可以使用以下内容:

#if __has_feature(objc_arc)
  ...
#endif
Run Code Online (Sandbox Code Playgroud)

即使您使用的是最新版本的LLVM,如果您使用该-fobjc-arc选项进行编译,也只会评估为true .

  • +1,也要感谢你的回答我找到了`__has_feature(objc_arc_weak)` (3认同)