iOS 開發,工程中混合使用 ARC 和非ARC
【前提知識】
ARC:Automatic Reference Counting,自動引用計數
在開發 iOS 3 以及之前的版本的項目時我們要自己負責使用引用計數來管理內存,比如要手動 retain、release、autorelease 等,而在其後的版本可以使用 ARC,讓係統自己管理內存。
【問題】
在項目開發過程中我們通常會用到第三方提供的源代碼,麻煩的是有些開源項目用的是 ARC,有的用的是非 ARC。
我在使用 SVProgressHUD 做等待視圖時遇到問題,最終發現該項目使用的是 ARC 模式,而我的工程使用的是非 ARC 模式。
怎麼辦呢?
【解決方案】
Xcode 項目中我們可以使用 ARC 和非 ARC 的混合模式。
如果你的項目使用的非 ARC 模式,則為 ARC 模式的代碼文件加入 -fobjc-arc 標簽。
如果你的項目使用的是 ARC 模式,則為非 ARC 模式的代碼文件加入 -fno-objc-arc 標簽。
添加標簽的方法:
- 打開:你的target -> Build Phases -> Compile Sources.
- 雙擊對應的 *.m 文件
- 在彈出窗口中輸入上麵提到的標簽 -fobjc-arc / -fno-objc-arc
- 點擊 done 保存
參考:
https://blog.unieagle.net/?p=484
https://stackoverflow.com/questions/6646052/how-can-i-disable-arc-for-a-single-file-in-a-project
https://github.com/samvermette/SVProgressHUD/issues/84
最後更新:2017-04-04 07:03:18