Xcode5之后,新建iOS工程,默認都是ARC模式,但是有時候我們的項目中需要用到一些第三方框架,我們下載下來卻發現是非ARC的,這時候我們需要進行ARC和MRC混編。
第一種方式,Edit->Refactor,轉換成ARC方式
著名的iOS網絡框架ASIHTTPRequest就是MRC,我們試試能不能轉換成ARC
點擊Check,我們發現悲劇了
多數情況下這種方式都會出錯,那該怎么辦呢?
第二種方式,給編譯器加標記
可以在Build Phases中的Compile Sources中加入編譯標記-fno-objc-arc,確實可行,但是文件好多,這種方式適合文件比較少的情況,文件多了難道我們要一個一個加嘛,這時候我們可以借助一個工具xproj,這是一個腳本,可以很方便的給某個文件夾內的文件添加編譯標記,具體使用方法我們看項目主頁就行了,既可以給ARC項目添加MRC標記(-fno-objc-arc),也可以給MRC項目添加ARC標記(-fobjc-arc)
第三種方式,打包成靜態庫
將我們將要使用的類拖入工程當中
勾選正確的target
將原來的類文件刪除,只留我們需要的,然后我們將整個項目變為MRC
添加頭文件
設置公共頭文件
運行程序,我們發現靜態庫已經產生
這種方式的缺點就是如果需要改源碼,就需要重新打包
最后一種方式,項目引用
新建一個項目,改為非ARC,在另一個項目中引用這個項目
我們需要把項目B中的無關文件刪除掉
最后一種方式,自己重寫成ARC方式