閱讀640 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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 標簽。

添加標簽的方法:

  1. 打開:你的target -> Build Phases -> Compile Sources.
  2. 雙擊對應的 *.m 文件
  3. 在彈出窗口中輸入上麵提到的標簽 -fobjc-arc / -fno-objc-arc
  4. 點擊 done 保存

參考:

SVProgressHUD 下載

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

  上一篇:go ExecutorService線程池
  下一篇:go 惡搞必備 炫酷Win 8十大令人抓狂惡作劇