2011-12-26 70 views
6

我的項目使用ARC(自動引用計數器),所以當我嘗試導入ASIHTTPRequest庫,其中有4個類用於他們的實現autorelease語句,在這裏有一個例子:文件不支持ARC功能,如何處理

[self setAccessLock:[[[NSRecursiveLock alloc] init] autorelease]]; 

,我得到了錯誤:

ARC forbids explicit message send of autorelease 

我應該做些什麼來解決這個問題。

回答

14

我已經得到了解決方案,我需要爲不支持ARC的每個文件的編譯器標誌添加正確的標誌。對於我,我使用Xcode 4.2,所以在target -> Build Phases -> Compile Sources下,雙擊要禁用ARC功能的文件,並將-fno-objc-arc點擊Done。這是完成;)

請注意,如果文件不存在列表中,您可以通過單擊+按鈕添加它,然後執行上述相同的工作。

9

禁用ARC爲一類

在遷移項目中使用ARC,在-fobjc弧編譯器標誌被設置爲默認爲所有的Objective-C源文件。您可以使用該類的-fno-objc-arc編譯器標誌來禁用特定類的ARC。

在Xcode中,在目標Build Phases選項卡中,打開Compile Sources組以顯示源文件列表。雙擊要爲其設置標誌的文件,在彈出面板中輸入-fno-objc-arc,然後單擊完成。