由于公司项目过于老旧,内存还是使用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能解决的尽