设置ARC有效或者无效

Posted 码出境界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置ARC有效或者无效相关的知识,希望对你有一定的参考价值。

      在编译单位上,可以设置ARC有效或者无效。比如对每个文件可以选择使用或者不使用ARC,一个应用程序中可以混合ARC有效或者无效的二进制形式。

  设置ARC有效的编译方法如下所示:(Xcode4.2开始默认设定对所有文件ARC有效)

    *使用clang(LLVM编译器)3.0或以上版本

    *指定编译器属性为"-fobjc-arc"

  设置ARC有效或者无效,一般两种方式:对所有文件统一操作、对部分文件操作。

  1.对所有文件统一操作

  需求:有的编程人员为了能更好的理解内存管理机制,刻意将编译器指定为ARC无效。

  操作:targets  -->  Build Settings  -->  Apple LLVM 7.1-Language-Objective C  -->  Objective-C Automatic Reference Counting  -->  将其设置为NO。

  2.对部分文件操作

  需求:Xcode中经常需要导入一些第三方的代码文件,如果项目的编译器指定为ARC机制,但是导入的文件是非ARC机制的,处理这种情况时,只要告诉编译器将这个外来的文件按非ARC规则进行编译,其他的文件照常按ARC规则编译。

  操作:targets  -->  Build Phases  -->  展开Compile Sources  -->  找到非ARC机制的文件,在其后的Compiler Flags一栏双击后,并输入-fno-objc-arc

  需求:Xcode中经常需要导入一些第三方的代码文件,如果项目的编译器指定为非ARC机制,但是导入的文件是ARC机制的,处理这种情况时,只要告诉编译器将这个外来的文件按ARC规则进行编译,其他的文件照常按非ARC规则编译。

  操作:targets  -->  Build Phases  -->  展开Compile Sources  -->  找到非ARC机制的文件,在其后的Compiler Flags一栏双击后,并输入-fobjc-arc

以上是关于设置ARC有效或者无效的主要内容,如果未能解决你的问题,请参考以下文章

JSONKit 是不是支持 ARC,或者是不是有支持 ARC 的 fork?

wifi有效后,刚找到网络,或者还没找到网络。马上自动关闭的原因

自动引用计数ARC

css的margin和padding啥时候有效设么时候无效

或者是无效的 C++:为啥这段代码会编译?

arc就响一声