iOS开发如何代码判断ARC还是MRC?宏如何写?如何混编?

iOS开发如何代码判断ARC还是MRC?宏如何写?如何混编?_第1张图片
『导言』

亲们,可能在开发中遇到变态需求,在ARC或者MRC之间切换?那怎么宏代码判断当前环境是ARC还是MRC

在Xcode设置MRC与ARC混编?

iOS5.0以后就开始可以使用ARCAutomatic Reference Counting:自动引用计数 )来代替之前的MRCManual Reference Counting:人工引用计数)。使用ARC会减少很多代码和忘了释放对象的苦恼。但是事情都有两面性。使用了ARC之后如果你想复用以前写过的使用MRC的类, 就会出报错。这时候怎么办?方法比较简单, 只需要做下面的一个步骤就可以解决:

转换 设置命令 注释
MRCARC -fno-objc-arc 使原来不支持ARC的代码,支持ARC
ARCMRC -fobjc-arc 使原来不支持MRC的代码,支持MRC
ARC工程中也可以使用MRC的类

TargetsBuild phases选项下Compile Sources下选择要不使用arc编译的文件,双击它,输入 -fno-objc-arc 即可

iOS开发如何代码判断ARC还是MRC?宏如何写?如何混编?_第2张图片
图.ARC转MRC

MRC工程中也可以使用ARC的类。方法如下:

TargetsBuild phases选项下Compile Sources下选择要不使用arc编译的文件,双击它,输入 -fobjc-arc 即可

iOS开发如何代码判断ARC还是MRC?宏如何写?如何混编?_第3张图片
图.MRC转ARC

iOS 开发中如何用宏判断是ARC环境还是MRC环境?
宏代码:
    //条件满足ARC
#if __has_feature(objc_arc)
//    否则执行MAC
    
    NSLog(@"ARC");
#else 
    NSLog(@"MRC");

# endif

iOS开发如何代码判断ARC还是MRC?宏如何写?如何混编?_第4张图片
图 .放松时刻.gif
链接:

xcode中arc与非arc之间的转换

你可能感兴趣的:(iOS开发如何代码判断ARC还是MRC?宏如何写?如何混编?)