我的項目使用ARC(自動引用計數器),所以當我嘗試導入ASIHTTPRequest庫,其中有4個類用於他們的實現autorelease語句,在這裏有一個例子:文件不支持ARC功能,如何處理
[self setAccessLock:[[[NSRecursiveLock alloc] init] autorelease]];
,我得到了錯誤:
ARC forbids explicit message send of autorelease
我應該做些什麼來解決這個問題。
我的項目使用ARC(自動引用計數器),所以當我嘗試導入ASIHTTPRequest庫,其中有4個類用於他們的實現autorelease語句,在這裏有一個例子:文件不支持ARC功能,如何處理
[self setAccessLock:[[[NSRecursiveLock alloc] init] autorelease]];
,我得到了錯誤:
ARC forbids explicit message send of autorelease
我應該做些什麼來解決這個問題。
我已經得到了解決方案,我需要爲不支持ARC的每個文件的編譯器標誌添加正確的標誌。對於我,我使用Xcode 4.2,所以在target -> Build Phases -> Compile Sources
下,雙擊要禁用ARC功能的文件,並將-fno-objc-arc
點擊Done
。這是完成;)
請注意,如果文件不存在列表中,您可以通過單擊+按鈕添加它,然後執行上述相同的工作。
禁用ARC爲一類
在遷移項目中使用ARC,在-fobjc弧編譯器標誌被設置爲默認爲所有的Objective-C源文件。您可以使用該類的-fno-objc-arc編譯器標誌來禁用特定類的ARC。
在Xcode中,在目標Build Phases選項卡中,打開Compile Sources組以顯示源文件列表。雙擊要爲其設置標誌的文件,在彈出面板中輸入-fno-objc-arc,然後單擊完成。