9

我已經試過the solution found in this post在AFNetworking文件禁用ARC,但無濟於事:-fno-objc弧無法正常工作時禁用ARC

enter image description here

任何地方我沒有想法?顯然答案越簡單越好。我也讀過創建靜態庫可能會有所幫助,但這看起來很複雜。

編輯

我試圖刪除導出的數據清理並生成重新啓動的Xcode。沒有交易:(。

另外,還有一些在我的工作區沒有其他項目。

+1

令人費解。它應該照原樣工作。我會刪除派生數據並重新啓動Xcode(這很愚蠢,但Xcode更笨拙)。 – Jano

+0

也許你爲一個目標設置標誌並建立另一個目標? – lawicko

+0

這並不能解答你的Xcode問題,但我們的團隊最近開始使用[CocoaPods](http://cocoapods.org/)來管理依賴關係,它爲我們節省了大量時間。雖然我沒有使用AFNetworking,但有一個將AFNetworking構建到項目中的規範。 –

回答

16

奇怪的事情。我嘗試添加了-fno-objc-arc標誌,一些Facebook的文件,終於建成了這個項目。我想,這裏的教訓是,當Xcode中生成這些類型的錯誤,問題的根源可能在另一個文件中。如果Xcode是抱怨,你已標記文件,這可能尤其是真的!

enter image description here

希望這將是幫助某人:)。

+3

我遇到同樣的問題。你怎麼知道這是導致問題的FB文件? – Jason

2

其實問題很簡單。確保您在編譯器標誌對話框中輸入的-fno-objc-arc標誌後沒有回車。

+0

完美。我的問題確切。 – malaki1974

+0

酷派!該工作和+1 –

0

有同樣的問題,但無法找到有問題的文件(如Brotto的解決方案)。所以,簡單地包裹非弧投訴代碼片段在下面的#if語句塊:

#if !(__has_feature(objc_arc)) 

//...non-arc code 

#endif 
0

我能夠在重構取消選中非ARC文件來解決我的問題 - >轉換成Objective-C的ARC模態。即使由於'fno-objc-arc'標誌,文件已經被解除了包圍。一旦我取消選中這些文件,Xcode就開始吐出更好的錯誤,使我能夠找到需要修復的文件。在做出這些改變之後,我很開心。

1

我設法通過.m文件進入該狀態#imported a .m文件不符合ARC兼容。編譯器會抱怨包含的文件,該文件可能被標記爲-fno-objc-arc。我不得不標記.m正在做包括。

我通過展開失敗的構建輸出並查看顯示未能編譯的文件(與警告中的文件不同)的原始日誌來發現此問題。

我還需要刪除派生的數據文件。

3

「轉換爲Objective-C ARC」是一種代碼重寫工具,另一方面-fno-objc-arc是一個編譯時間標誌。這與重構的目的無關。

單擊「檢查」之前,花費目標並取消選擇要保持無ARC的文件。

4

只是一個小的額外提示:

如果你在你的項目檢查多個目標,如果你添加的編譯器標誌-fno-objc-arc到所有的人。