2011-12-07 44 views
0

我最近將我的項目轉換爲使用ARC(自動引用計數)。Xcode中的沉默錯誤

它不知道何時真正釋放對象,並且經常因爲我有很多分配正在執行,所以我的應用程序具有過高的內存使用量,因爲現有對象未被釋放當他們從視圖中關閉時。

我需要做的就是禁用該文件的ARC,並且一切都應該正常。我這樣做了,增加了發佈聲明,並且它完美地工作。除了一個錯誤。

每當項目沒有被構建時(即錯誤消失並且構建成功時)它顯示一個錯誤,指出ARC禁止發送釋放消息給一個對象,即使我明確地添加了「項目設置」中該文件的例外情況。

我真正需要做的是消除錯誤,因爲沒有錯誤(因爲它成功建立)。

任何幫助表示讚賞。

+0

這是錯誤還是警告?具有警告/錯誤的確切文本將有助於幫助人們知道您可能需要設置的內容。 –

+0

文件是否包含在另一個目標中,如單元測試目標?您需要在每個包含它的目標文件中添加「-fno-objc-arc」編譯器標誌。 –

回答

0

那麼,經過多次構建和清理,錯誤已奇蹟般地消失。

這些問題在Xcode 4中很常見,我從一些明顯被使用的東西中得到了一個未使用的變量警告。

+1

是的,這似乎是Xcode 4.2的問題,至少也可能是4.2.1。但是,回到ARC的事情,你說它不會「做得很好」。如果你的內存使用率很高,並且在ARC下增加,那是因爲你保留了不應該保留的引用。關閉ARC可能是短期的創可貼,但在某些時候,您應該考慮在代碼中修復這些潛在的缺陷。你最終會再次遇到它們,ARC或no-objc-arc。 –