IOS ARC項目使用非ARC文件

原文地址:http://blog.163.com/kefan_1987/blog/static/89780131201371211132188/


SDK4.0引入了ARC,到現在已經一年了,開始發現有很多項目會混合使用這兩個方案。比如:

1.自己的舊項目沒有使用ARC,但是引入的第三方庫卻是使用了ARC的。
2.自己的新項目使用了ARC,但是引入的第三方庫或者以前寫的代碼卻沒有使用ARC。

這兩種情況下,直接肯定是通不過編譯的。可以通過升級舊項目,讓其使用ARC來解決,但這個辦法有時候會很麻煩。
有一個簡單的辦法就是,可以指定單個文件是否採用ARC來進行編譯。
方法就是在Build Phase裏面的Compile Source裏面找到需要特殊處理的文件,加上編譯選項(Compiler Flags),具體針對上面兩種情況有所區別。

1.對於第一個情況,給採用了ARC的源文件,添加-fobjc-arc選項
2.對於第二種情況,添加-fno-objc-arc

此外,xcode貌似有點問題,在點擊某個源文件的Compiler Flags條目的時候,應該顯示光標的地方卻什麼也沒有提示,輸入字符也沒有echo,只有敲完之後,選擇其它文件才能看到添加的編譯選項···這真無語。。



對於新寫的各種插件,可以這麼幹:

-(void)dealloc{
    //do something in common
#if !__has_feature(objc_arc)
    [super dealloc];
#else
    //nothing
#endif
}

讓它在arc和非arc都可用。



發佈了11 篇原創文章 · 獲贊 2 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章