【前提知識】
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模式)。
回車 保存 即可