iOS内存泄漏字典

时间:2011-08-25 13:18:45

标签: objective-c ios ipad memory-leaks nsdictionary

我目前正在分析我的应用并遇到一些漏洞。我试过在我认为需要的地方发布物品。每个版本都崩溃了应用程序。

以下是我认为是罪魁祸首的一行:

NSDictionary *dicUserData = [NSDictionary dictionaryWithObject:self forKey:@"chapter"];

只是想知道解决这个问题的最佳方法。我也有其他泄漏的问题,有点类似。值得注意的是,self是一个自定义类[Dal_Chapter]。

我是否需要实现副本或其他内容,在上面的行中调用它并对其进行自动释放?

提前致谢。

4 个答案:

答案 0 :(得分:1)

使用诸如dictionaryWithObject之类的便捷方法提供了字典对象的自动释放实例。除非你把它留在别处,否则这不是你的泄密所在。

答案 1 :(得分:1)

我会检查静态分析仪,它应该能够为你指出泄漏。

该词典将保留自己,所以你不必担心它。

自我释放的拥有者吗?

答案 2 :(得分:0)

基本上你不需要做任何你的词典,但如果你想控制记忆,你需要这样做:

NSDictionary *dicUserData = [[NSDictionary alloc] initWithObjects:yourObject forKeys:key];

和你的dealloc方法,

[dicUserDate release];

但是,你只是无所事事......你确定你的泄密来自你的词典吗?

答案 3 :(得分:0)

始终保持所有变量在dealloc方法中释放。如果它不在适当的地方可能会崩溃。检查此链接click here