在编译单位上,能够设置ARC有效或者无效。好比对每一个文件能够选择使用或者不使用ARC,一个应用程序中能够混合ARC有效或者无效的二进制形式。编程
设置ARC有效的编译方法以下所示:(Xcode4.2开始默认设定对全部文件ARC有效)ui
*使用clang(LLVM编译器)3.0或以上版本spa
*指定编译器属性为"-fobjc-arc"code
设置ARC有效或者无效,通常两种方式:对全部文件统一操做、对部分文件操做。内存
1.对全部文件统一操做get
需求:有的编程人员为了能更好的理解内存管理机制,刻意将编译器指定为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。