標籤:blog http 使用 strong os 檔案
Xcode4.2(iOS 5)以後啟用了ARC(Automatic Reference Countion)技術(即記憶體自動管理機制)
1、需要iOS5才支援;
2、很多引用的類庫暫時還不支援. 麻煩的是對大多數第三方庫需要加禁用arc的編譯flag,因為大多都因為相容性還在使用手動記憶體管理。
雖然4.2以後版本仍然可以不開啟ARC, 但是我們在建工程的時候有時為了不想管理記憶體然後就啟用了ARC,
但是再開發過程中需要用到第三開發類庫,
而這些第三方類庫或是沒做更新而不支援ARC,然後編譯時間就出現下列錯誤:
‘release‘ is unavailable: not available in automatic reference counting mode
ARC forbids explicit message send of ‘release‘
‘autorelease‘ is unavailable: not available in automatic reference counting mode
ARC forbids explicit message send of ‘autorelease‘
‘retain‘ is unavailable: not available in automatic reference counting mode
ARC forbids explicit message send of ‘retain‘
(1)對單個檔案取消ARC的解決辦法:
1.在targets->build phases中修改compiler Flags屬性,添加:-fobjc-arc,就可以讓舊的工程支援arc;
2.在targets->build phases中修改compiler Flags屬性,添加:-fno-objc-arc,就可以讓原來支援arc的工程不使用arc,對於大部分第三方類庫來說都可以順利編譯通過
(2)對整個工程取消ARC的解決辦法:
開啟你的工程,點擊目錄的工程檔案,最頂端藍色的,
然後選擇project下你的工程,還是藍色那項,然後build Settings,然後往下拉,在Apple LLVM 5.0 - Language - Objective C 裡有一個選項,Objective-C Automatic Reference Counting 選擇NO,就可以了。
project ->
build Settings ->
Apple LLVM 5.0 - Language - Objective C ->
Objective-C Automatic Reference Counting