天天看點

ARC的開啟和禁止

要想将非arc的代碼轉換為arc的代碼,大概有2種方式:

1.使用xcode的自動轉換工具

2.手動設定某些檔案支援arc

一、xcode的自動轉換工具

xcode帶了一個自動轉換工具,可以将舊的源代碼轉成arc模式

1.arc是llvm 3.0編譯器的特性,而現有工程可能使用老的gcc 4.2或llvm-gcc編譯器,是以首先需要設定使用llvm 3.0編譯器:

(現使用的xcode4.5,llvm 3.0已經更新到llvm 4.1)

ARC的開啟和禁止

最好也選上warnings中的other warning flags 為 -wall,這樣編譯器就會檢查所有可能的警告,有助于我們避免潛在的問題

2.build options下面的run static analyzer選項也最好啟用,這樣每次xcode編譯項目時,都會運作靜态代碼分析工具來檢查我們的代碼

ARC的開啟和禁止

3.設定"objective-c automatic reference counting"選項為yes,不過xcode自動轉換工具會自動設定這個選項,這裡隻是說明一下如何手動設定

ARC的開啟和禁止

4.打開xcode的自動轉換工具

ARC的開啟和禁止

5.xcode會顯示一個新視窗,讓你選擇哪些檔案需要轉換

ARC的開啟和禁止

點選check按鈕,xcode可能會彈出對話框提示項目不能轉換為arc,需要你準備好轉換(這裡暫時省略詳細說明)

6.如果沒有什麼警告、錯誤了,就會彈出一下提示視窗:

ARC的開啟和禁止

7.點選next,幾秒鐘後,xcode會提示所有檔案的轉換預覽,顯示源檔案的所有改變。左邊是修改後的檔案,右邊是原始檔案。在這裡你可以一個檔案一個檔案地檢視xcode的修改,以確定xcode沒有改錯你的源檔案:

ARC的開啟和禁止

點選save即可完成轉換

8.自動轉換之後,xcode會移除所有retain、release、autorelease調用,這可能會導緻代碼出現其它警告、無效文法等,這些都需要自己手工進行修改

注意:xcode的自動轉換工具最好隻使用一次,多次使用可能會出現比較詭異的問題。假如你第一次轉換沒有轉換所有的檔案,當你稍後試圖再次轉換剩餘的檔案時,xcode實際上不會執行任何轉換操作。是以最好一次就完成轉換,沒有轉換的檔案可以考慮手工進行修改

二、手動開啟某些檔案的arc

ARC的開啟和禁止

在compiler flags一列加上-fobjc-arc就表示開啟這個.m檔案的arc

三、禁止某些檔案的arc

ARC的開啟和禁止

在compiler flags一列加上-fno-objc-arc就表示禁止這個.m檔案的arc

繼續閱讀