【前提知识】
bjective-c中提供了两种内存管理机制
MRC(MannulReference Counting)手动引用计数
ARC (Automatic Reference Counting)自动引用计数
分别提供对内存的手动和自动管理,来满足不同的需求。,
Xcode 4.1及其以前版本没有ARC在开发项目时我们要自己使用引用计数来管理内存,比如要手动 retain、release、autorelease 等,而在其后的版本可以使用 ARC,让系统自己管理内存。
【问题】
在项目开发过程中我们通常会用到第三方提供的源代码,麻烦的是有些开源项目用的是 ARC,有的用的是非 ARC。当我们的工程中用到与工程的内存管理模式不一样的源码时该怎么办呢?
【解决方案】
Xcode 工程中我们可以使用 ARC 和MRC 的混合模式。
如果你的工程使用的MRC 模式,则为 ARC 模式的代码文件加入 -fobjc-arc 标签。
如果你的工程使用的是 ARC 模式,则为MRC 模式的代码文件加入 -fno-objc-arc 标签。
添加标签的具体方法:
打开工程找到target -> Build Phases -> Compile Sources.
双击需要改模式的 代码对应的 .m 文件
在弹出窗口中输入上面提到的标签 -fobjc-arc (ARC模式) -fno-objc-arc(MRC模式)。
回车 保存 即可