Pragma明确启用ARC?

时间:2011-11-15 12:09:02

标签: objective-c automatic-ref-counting

是否有#pragma(或其他一些构造)在Objective-C(或Objective-C ++)源文件中显式启用自动引用计数(ARC)?如果未启用ARC,源文件可能导致编译失败,那就更好了。

我开始拥有一些可以与其他项目共享的ARC源文件。其中大多数都包含扩展内置类的类别方法。我只是不想意外地将这些包含在非ARC项目中并开始泄漏内存。

提前致谢!

1 个答案:

答案 0 :(得分:12)

据我所知,没有办法明确启用或禁用ARC。

但是可以检测它是否已启用。只需将以下代码段添加到任何需要ARC的文件中。

#ifndef __has_feature
  #define __has_feature(x) 0 /* for non-clang compilers */
#endif

#if !__has_feature(objc_arc)
  #error ARC must be enabled!
#endif

更多信息:
http://clang.llvm.org/docs/AutomaticReferenceCounting.html
http://clang.llvm.org/docs/LanguageExtensions.html#__has_feature_extension