NSNotificationCenter 内存泄漏

Posted

技术标签:

【中文标题】NSNotificationCenter 内存泄漏【英文标题】:NSNotificationCenter memory leak 【发布时间】:2012-04-23 15:50:04 【问题描述】:

我正在使用 Instruments 分析我的应用,并注意到 Leaks 将以下代码标记为内存泄漏:

- (void) onMessage:(DFTopicMessage *) message 

    [[NSNotificationCenter defaultCenter] 
     postNotificationName:@"serverMessage" 
     object:message];


更准确地说,标记为泄漏的行是:

[NSNotificationCenter defaultCenter] 

我在我的项目中使用了 ARC,所以我没想到会这样。将非常有兴趣了解此代码有什么问题以及如何避免泄漏。

提前致谢。

【问题讨论】:

【参考方案1】:

我正在调试相同的症状。 another post 中建议您检查观察者的选择器是否不会过度保留内存。我想进一步详细说明,您可以简单地注释掉选择器中的所有代码并验证这是发生泄漏的地方。在这种情况下,我建议您通过一次取消注释一行来分而治之,以找到问题的确切根源。递归地应用此技术,直到问题出现在您面前。

【讨论】:

以上是关于NSNotificationCenter 内存泄漏的主要内容,如果未能解决你的问题,请参考以下文章

登陆界面的简单编写(通过NSNotificationCenter)

c++ 内存泄漏问题

MFC内存泄漏调试

如何防止java中的内存泄漏

记录一次DialogFragment 内存泄漏

常见的内存泄漏原因及解决方法