ARC MRC混编

转载 2015年11月21日 17:55:44

重点:

添加MRC标记(-fno-objc-arc)

添加ARC标记(-fobjc-arc)

第一种方式,Edit->Refactor,转换成ARC方式

著名的iOS网络框架ASIHTTPRequest就是MRC,我们试试能不能转换成ARC

点击Check,我们发现悲剧了

多数情况下这种方式都会出错,那该怎么办呢?

第二种方式,给编译器加标记

可以在Build Phases中的Compile Sources中加入编译标记-fno-objc-arc,确实可行,但是文件好多,这种方式适合文件比较少的情况,文件多了难道我们要一个一个加嘛,这时候我们可以借助一个工具xproj,这是一个脚本,可以很方便的给某个文件夹内的文件添加编译标记,具体使用方法我们看项目主页就行了,既可以给ARC项目添加MRC标记(-fno-objc-arc),也可以给MRC项目添加ARC标记(-fobjc-arc)

第三种方式,打包成静态库

将我们将要使用的类拖入工程当中

勾选正确的target

将原来的类文件删除,只留我们需要的,然后我们将整个项目变为MRC

添加头文件

设置公共头文件

运行程序,我们发现静态库已经产生

这种方式的缺点就是如果需要改源码,就需要重新打包

最后一种方式,项目引用

新建一个项目,改为非ARC,在另一个项目中引用这个项目

我们需要把项目B中的无关文件删除掉

最后一种方式,自己重写成ARC方式


ios ARC&MRC混编

ARC(Automatic Reference Counting) MRC(Mannul Reference Counting)苹果在iOS5中提出了ARC(Automatic Reference ...

iOS开发之ARC MRC混编

Xcode5之后,新建iOS工程,默认都是ARC模式,但是有时候我们的项目中需要用到一些第三方框架或者接手一个旧项目,我们拿过来来却发现是非ARC的,这时候我们需要进行ARC和MRC混编。...

关于ARC的介绍和ARC与MRC混编解决

1. ARC & MRC 混合开发 在项目开发中,遇到使用MRC开发的第三方库怎么办? 例如:ASI 1> 尝试使用Xcode的转换工具(失败率比较高) 2> 在编译选项中,为...
  • hbblzjy
  • hbblzjy
  • 2016年04月07日 00:02
  • 607

ARC 下 C++/OC 混编计数器的问题

ARC 模式下,object-C 编写的代码的内存管理都交给了自动引用计数器了,不用我们自己再去操心内存的管理,但使用 Core Foundation 框架或者是和 C++ 混编时,代码的内存还是需要...

如何在ARC代码中混编非ARC代码

“ios中如果arc和非arc文件混编,可以在build parses中指定compile flags,如果arc文件设为"-fobjc-arc",非arc文件设为"-fno-objc-arc"” ...
  • yuanya
  • yuanya
  • 2014年02月27日 11:06
  • 669

AFNetworking    在MRC下使用AF第三方网络请求数据     加  -fobjc-arc

#import "AFNetworking.h"- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setu...

Objective-c的内存管理MRC与ARC

Objective-c的内存管理MRC与ARCObjective-c中提供了两种内存管理机制MRC(MannulReference Counting)和ARC(Automatic Reference ...

Objective-C中block在ARC与MRC下的不同 深入剖析实用版

我们先来看如下代码: MyViewController *myController = [[MyViewController alloc] init…]; // 隐式地调用[myControlle...

iOS学习笔记01——在工程中实现ARC和MRC混合编译

接触iOS差不多有一年的时间了,从大四开学后开始自学起步,这一路走过来,都是看着前辈们的博客和苹果官方的开发者文档(虽然我的英文水平一般)。今年(2013)7月份正式从学校毕业了,到现在差不两个月的试...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ARC MRC混编
举报原因:
原因补充:

(最多只允许输入30个字)