现在大多的公司都已经采用更加简便的内存管理方式——arc;但是我们会时不时地需要导入一些功能强大的老框架,然而这些老框架使用的都是 mrc,这就需要我们能够在这两种内存管理方式之间灵活转变。
目前我所在公司使用的是 arc,我要向项目中导入如下几个常见框架:
导入之后就会报如下错误,
大意是:在 arc下不能使用 release(mrc 下专用);
为了解决相关问题,可用如下方法解决
1.Edit->Refactor,转换成ARC方式
勾选相关文件,并点击 check即可使用!
然而第一种方法并不是万能的,例如著名的 网络框架 ASIHTTPREQUEST,则出现了如下问题
于是寻觅其他可行的办法。
2.给编译器加标记
可以在Build Phases中的Compile Sources中加入编译标记-fno-objc-arc,此方法适合添加标记 文件较少的情况;
如果需要添加标记的文件较多,可以借助一个工具xproj(这是一个脚本)可以很方便的给某个文件夹内的文件添加编译标记,具体使用方法我们看项目主页就行了,既可以给ARC 项目添加MRC标记(-fno-objc-arc),也可以给MRC项目添加ARC标记(-fobjc-arc)
3.打包成静态库
网友评论