MRC和ARC混合开发
1.概念
- ARC : Automatic Reference Counting
- MRC : Manual Reference Counting
2.解决方案 : 保证项目是ARC环境
- 1> 使用Xcode自带的转换功能:Edit -> Convert -> To Objective-C ARC (失败率高)
- 2> 给所有MRC的文件添加一个编译器参数:-fno-objc-arc
- 3> 将所有MRC的文件打包成一个静态库文件:.a⽂文件
3.第三方框架同时支持ARC和MRC环境
- 1> MRC环境:自动生成release、autorelease等内存管理代码
- 2> ARC环境:不会生成release、autorelease等内存管理代码
- 3> 实现方案
#if !__has_feature(objc_arc)

#endif
4.举例
#if __has_feature(objc_arc)
#define MB_AUTORELEASE(exp) exp
#define MB_RELEASE(exp) exp
#define MB_RETAIN(exp) exp
#else
#define MB_AUTORELEASE(exp) [exp autorelease]
#define MB_RELEASE(exp) [exp release]
#define MB_RETAIN(exp) [exp retain]
#endif