要想將非ARC的代碼轉(zhuǎn)換為ARC的代碼,大概有2種方式: 1.使用Xcode的自動(dòng)轉(zhuǎn)換工具 2.手動(dòng)設(shè)置某些文件支持AR C 一、Xcode的自動(dòng)轉(zhuǎn)換工具 Xcode帶了一個(gè)自動(dòng)轉(zhuǎn)換工具,可以將舊的源代碼轉(zhuǎn)成ARC模式 1.ARC是LLVM 3.0編譯器的特性,而現(xiàn)有工程可能使用老的GCC 4.2
要想將非ARC的代碼轉(zhuǎn)換為ARC的代碼,大概有2種方式:
1.使用Xcode的自動(dòng)轉(zhuǎn)換工具
2.手動(dòng)設(shè)置某些文件支持ARC
一、Xcode的自動(dòng)轉(zhuǎn)換工具
Xcode帶了一個(gè)自動(dòng)轉(zhuǎn)換工具,可以將舊的源代碼轉(zhuǎn)成ARC模式
1.ARC是LLVM 3.0編譯器的特性,而現(xiàn)有工程可能使用老的GCC 4.2或LLVM-GCC編譯器,因此首先需要設(shè)置使用LLVM 3.0編譯器:
(現(xiàn)使用的XCode4.5,LLVM 3.0已經(jīng)升級(jí)到LLVM 4.1)
最好也選上Warnings中的Other Warning Flags 為 -Wall,這樣編譯器就會(huì)檢查所有可能的警告,有助于我們避免潛在的問(wèn)題
2.Build Options下面的Run Static Analyzer選項(xiàng)也最好啟用,這樣每次Xcode編譯項(xiàng)目時(shí),都會(huì)運(yùn)行靜態(tài)代碼分析工具來(lái)檢查我們的代碼
3.設(shè)置"Objective-C Automatic Reference Counting"選項(xiàng)為YES,不過(guò)Xcode自動(dòng)轉(zhuǎn)換工具會(huì)自動(dòng)設(shè)置這個(gè)選項(xiàng),這里只是說(shuō)明一下如何手動(dòng)設(shè)置
4.打開(kāi)Xcode的自動(dòng)轉(zhuǎn)換工具
5.Xcode會(huì)顯示一個(gè)新窗口,讓你選擇哪些文件需要轉(zhuǎn)換
點(diǎn)擊Check按鈕,Xcode可能會(huì)彈出對(duì)話框提示項(xiàng)目不能轉(zhuǎn)換為ARC,需要你準(zhǔn)備好轉(zhuǎn)換(這里暫時(shí)省略詳細(xì)說(shuō)明)
6.如果沒(méi)有什么警告、錯(cuò)誤了,就會(huì)彈出一下提示窗口:
7.點(diǎn)擊Next,幾秒鐘后,Xcode會(huì)提示所有文件的轉(zhuǎn)換預(yù)覽,顯示源文件的所有改變。左邊是修改后的文件,右邊是原始文件。在這里你可以一個(gè)文件一個(gè)文件地查看Xcode的修改,以確保Xcode沒(méi)有改錯(cuò)你的源文件:
點(diǎn)擊Save即可完成轉(zhuǎn)換
8.自動(dòng)轉(zhuǎn)換之后,Xcode會(huì)移除所有retain、release、autorelease調(diào)用,這可能會(huì)導(dǎo)致代碼出現(xiàn)其它警告、無(wú)效語(yǔ)法等,這些都需要自己手工進(jìn)行修改
注意:Xcode的自動(dòng)轉(zhuǎn)換工具最好只使用一次,多次使用可能會(huì)出現(xiàn)比較詭異的問(wèn)題。假如你第一次轉(zhuǎn)換沒(méi)有轉(zhuǎn)換所有的文件,當(dāng)你稍后試圖再次轉(zhuǎn)換剩余的文件時(shí),Xcode實(shí)際上不會(huì)執(zhí)行任何轉(zhuǎn)換操作。因此最好一次就完成轉(zhuǎn)換,沒(méi)有轉(zhuǎn)換的文件可以考慮手工進(jìn)行修改
二、手動(dòng)開(kāi)啟某些文件的ARC
在Compiler Flags一列加上-fobjc-arc就表示開(kāi)啟這個(gè).m文件的ARC
三、禁止某些文件的ARC
在Compiler Flags一列加上-fno-objc-arc就表示禁止這個(gè).m文件的ARC
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com