arc和非arc完美支持

 简易方案,选择你编译的的target,build phases-->Compiled sources中,双击没用arc的文件,写-fno-objc-arc

相应的,没开启ARC的工程单独为某文件开启arc,compile flag填 -fobjc-arc

如果你为别人写框架,需要兼容arc、非arc、gc等多模,在代码中可以用预处理判断:

#if(!__has_feature(objc_arc))
   
[_someObj release];
#endif

也可以在你全局的pch中加入这个宏

#ifndef OBJC_ARC_ENABLED
 
#ifdef __has_feature
   
#define OBJC_ARC_ENABLED __has_feature(objc_arc)
 
#else
   
#define OBJC_ARC_ENABLED 0
 
#endif
#endif

以后判断就

#if(OBJC_ARC_ENABLED)
[_someObj release];
#endif

你可能感兴趣的:(编译,arc,非arc,混用)