Pragma明确启用ARC?

adi*_*dib 11 objective-c automatic-ref-counting

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

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

提前致谢!

Gil*_*Gil 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
Run Code Online (Sandbox Code Playgroud)

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