arc与 mac的混编

现在大多的公司都已经采用更加简便的内存管理方式——arc;但是我们会时不时地需要导入一些功能强大的老框架,然而这些老框架使用的都是 mrc,这就需要我们能够在这两种内存管理方式之间灵活转变。

目前我所在公司使用的是 arc,我要向项目中导入如下几个常见框架:

导入之后就会报如下错误,

arc与 mac的混编_第1张图片

大意是:在 arc下不能使用 release(mrc 下专用);

为了解决相关问题,可用如下方法解决

1.Edit->Refactor,转换成ARC方式


arc与 mac的混编_第2张图片

勾选相关文件,并点击 check即可使用!


arc与 mac的混编_第3张图片

 

然而第一种方法并不是万能的,例如著名的 网络框架 ASIHTTPREQUEST,则出现了如下问题


arc与 mac的混编_第4张图片

于是寻觅其他可行的办法。

2.给编译器加标记

可以在Build Phases中的Compile Sources中加入编译标记-fno-objc-arc,此方法适合添加标记 文件较少的情况;

如果需要添加标记的文件较多,可以借助一个工具xproj(这是一个脚本)可以很方便的给某个文件夹内的文件添加编译标记,具体使用方法我们看项目主页就行了,既可以给ARC 项目添加MRC标记(-fno-objc-arc),也可以给MRC项目添加ARC标记(-fobjc-arc)


3.打包成静态库

你可能感兴趣的:(arc与 mac的混编)