非ARC專案轉換成ARC專案的相關支援

2022-03-18 14:02:59 字數 1349 閱讀 7166

將紅圈處從no 改成yes

如果你現在的工程不支援arc技術,你可以通過乙個自動轉換工具來轉換你的工程(工具在edit>refactor>convertto objective-c arc),這個工具會自動所有工程中手動管理記憶體的點轉換成合適自動方式的(比如移除retain, release等)。這個工具會轉換工程中所有的檔案。當然你可以轉換單個檔案。

將這些記憶體管理的東西全部刪掉或注釋

6.1.**中不能使用retain, release, retain, autorelease

6.2.不過載dealloc(如果是釋放物件記憶體以外的處理,是可以過載該函式的,但是不能呼叫[super dealloc])

6.3.不能使用nsallocateobject, nsdeallocateobject

6.4.不能在c結構體中使用物件指標

6.5.id與void *間的如果cast時需要用特定的方法(__bridge關鍵字)

6.6.不能使用nsautoreleasepool、而需要@autoreleasepool塊

6.7.不能使用「new」開始的屬性名稱 (如果使用會有下面的編譯錯誤」property』s synthesized getter follows cocoa naming convention for returning 『owned』 objects」)

我們專案裡可能引用了許多第三方框架。

大部分都是用一些巨集來讓**可以同時適應arc和非arc的(用#if __has_feature(objc_arc)判斷)。如果**量不大,可以考慮自己進行改寫

你可以按上面的步驟將第三方框架自己手動改稱arc

如果是大型框架的話,可以採取標記此框架保留非arc的環境不變,繼續使用。

1,選擇專案中的targets,選中你所要操作的target,

2,選build phases,在其中complie sources中選擇需要arc的檔案雙擊,並在輸入框中輸入:-fobjc-arc,如果不要arc則輸入:-fno-objc-arc

IOS 在ARC專案中使用非ARC框架或者類庫

1.在arc專案中使用非arc框架或者類庫 ios 4引入了automatic reference count arc 編譯器可以在編譯時對obj c物件進行記憶體管理。之前,obj c的記憶體管理方式稱作引用計數,就是obj c物件每被 使用 一次,引用計數 1,當引用計數為0時,系統會 記憶體....

在ARC專案中使用非ARC框架或者類庫的解決方案

ios 4引入了automatic reference count arc 編譯器可以在編譯時對obj c物件進行記憶體管理。之前,obj c的記憶體管理方式稱作引用計數,就是obj c物件每被 使用 一次,引用計數 1,當引用計數為0時,系統會 記憶體.用程式語言 表達,就是allco的要rele...

在ARC專案中使用非ARC框架或者類庫的解決方案

ios 4引入了automatic reference count arc 編譯器可以在編譯時對obj c物件進行記憶體管理。之前,obj c的記憶體管理方式稱作引用計數,就是obj c物件每被 使用 一次,引用計數 1,當引用計數為0時,系統會 記憶體.用程式語言 表達,就是allco的要rele...