在工程中,我们可以混合搭配支持ARC和不支持ARC的代码。这里针对几种情况分别提供了的解决的办法。
1.同时含有支持ARC和不支持ARC的文件时
(1)使用-fno-objc-arc编译器标志兼容不支持ARC的文件,使用-fobjc-arc编译器标志单独设置支持ARC的文件
(2)使用Xcode的Convert to Objective-C ARC工具指定那些文件需要支持ARC哪些文件不使用ARC编译。
2.同一文件中混合支持ARC和不支持ARC的代码
#if !__has_feature(objc_arc)//这里是不支持ARC的代码-(void)release{//在这里释放变量}#endif在编写框架的时候,我们需要加入一个宏来提示框架使用者需要使用什么样的方式编译,尤其是在非ARC的工程中使用ARC编译的代码的时候会出现内存泄露。这个时候我们可以写一个宏来给出提示
#if !__has_feature(objc_arc)#error This file is ARC only.#endif