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