iOS项目MRC转ARC的两种方法

由于公司项目过于老旧,内存还是使用mrc进行管理,导致出现不少问题,最近着手将项目由mrc转换到arc上来,本人初步想法,有两种方案实施:


一、第一种方案(一步到位)

1、过滤无需转换的文件(需要统计出不需要转换的文件及第三方做标记)

  • 不希望转换的文件,添加-fno-objc-arc标记;
  • 对于第三方库如果有arc版的进行替换,没有的添加-fno-objc-arc标记;

2、使用Xcode自带的转换工具进行转换

  • Xcode->Edit->Convert->To Objective-C ARC;
  • 如果完成第一步中的操作,此处可以全选;
  • 此处没有选中的文件在完成自动转换后,将会被自动添加上-fno-objc-arc的标记;

注: 此处带有黄色感叹号标记的类是因为在项目中使用了-fobjc-arc标记。此处在进行自动转换的过程中,如果有第三方使用了[self retain],进行转换时会直接将此句删除,导致原先依赖这里的类在初始化之后就被释放了,将会造成野指针,所以,对于使用了mrc的第三方库尽量添加标记。

3、修复error与warn

  • error需要解决;
  • warn能解决的尽量解决,有些无关紧要的warn可以通过设置项屏蔽;

二、第二种方法(循序渐进)

1 、打开ARC开关

  • Build SettingsObjective-C Automatic Reference Counting YES;

2、去掉之前所以arc文件的-fobjc-arc的标记;

3、给所有的mrc代码加上-fno-objc-arc标记;

注: 鉴于2、3两步工作量问题,此处建议使用脚本处理,然后在后续开发的过程中陆陆续续将mrc文件修改为arc文件,删除-fno-objc-arc标记;

之后会对第一种方法的实施做详细介绍(未完待续)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值