是否有#pragma
(或其他一些构造)在Objective-C(或Objective-C ++)源文件中显式启用自动引用计数(ARC)?如果未启用ARC,源文件可能导致编译失败,那就更好了。
我开始拥有一些可以与其他项目共享的ARC源文件。其中大多数都包含扩展内置类的类别方法。我只是不想意外地将这些包含在非ARC项目中并开始泄漏内存。
提前致谢!
答案 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