2010-06-28 74 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中的警告。将会有一个有相关选项的专栏。在右侧,您可以选择一个选项。