首页 > 其他 > 详细

MRC和ARC混合开发

时间:2015-03-24 00:00:06      阅读:354      评论:0      收藏:0      [点我收藏+]

?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)
?// 这?里存放MRC代码,?比如[xxx release]
?#endif

4.举例

  • ?MBProgressHUD内部的灵活处理
?#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

MRC和ARC混合开发

原文:http://blog.csdn.net/chenyblog/article/details/44570937

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!