2010-06-28 43 views
4

我有一個函數是創建一個變量,但不是釋放它。它將這個對象傳遞給另一個處理內存管理的函數。XCode /靜態分析器:抑制保留計數/泄漏警告

我的問題是我如何抑制XCode認爲是過度保留變量的靜態分析器警告?我認爲我可以使用NS_RETURNS_RETAINED作爲創建它的函數,但這不起作用。我想知道它是否與變量通過消息傳遞的事實有關?

+0

你能提供一點有關功能的更多信息,可能與一些(僞)碼? – Yuji 2010-06-28 19:09:21

+0

@Yuji想想一個C內存數據庫,它需要'void *'內存指針。我想在那裏存儲一個'CFDictionaryRef',但爲了確保它保持活着,我必須調用'CFRetain',並且分析器抱怨說這是一個泄漏,但事實並非如此,我仍然可以隨時獲得對dict的引用,當它從內存數據庫中刪除時,我也會對它執行一個'CFRelease'。 – Mecki 2016-02-23 18:53:32

回答

4

您可以通過執行以下操作來避免內存警告:

  1. 選擇目標
  2. 選擇構建階段
  3. 您要禁止顯示警告選擇請編譯源
  4. 查找文件。
  5. 設置編譯器標誌,以通過雙擊它下面:

    -w -Xanalyzer -analyzer - 禁用 - 檢查

0

我不建議警告被壓制,因爲他們在那裏有很好的理由。編碼良好的應用程序有很多測試,很少或沒有內存泄漏。

但是,您可以通過轉到Xcode檢查器並在搜索框中鍵入「內存」來禁用Xcode 4中的警告。將會有一個有相關選項的專欄。在右側,您可以選擇一個選項。