在编译单位上,可以设置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。