我目前正在分析我的应用并遇到一些漏洞。我试过在我认为需要的地方发布物品。每个版本都崩溃了应用程序。
以下是我认为是罪魁祸首的一行:
NSDictionary *dicUserData = [NSDictionary dictionaryWithObject:self forKey:@"chapter"];
只是想知道解决这个问题的最佳方法。我也有其他泄漏的问题,有点类似。值得注意的是,self是一个自定义类[Dal_Chapter]。
我是否需要实现副本或其他内容,在上面的行中调用它并对其进行自动释放?
提前致谢。
答案 0 :(得分:1)
使用诸如dictionaryWithObject之类的便捷方法提供了字典对象的自动释放实例。除非你把它留在别处,否则这不是你的泄密所在。
答案 1 :(得分:1)
我会检查静态分析仪,它应该能够为你指出泄漏。
该词典将保留自己,所以你不必担心它。
自我释放的拥有者吗?
答案 2 :(得分:0)
基本上你不需要做任何你的词典,但如果你想控制记忆,你需要这样做:
NSDictionary *dicUserData = [[NSDictionary alloc] initWithObjects:yourObject forKeys:key];
和你的dealloc方法,
[dicUserDate release];
但是,你只是无所事事......你确定你的泄密来自你的词典吗?
答案 3 :(得分:0)
始终保持所有变量在dealloc方法中释放。如果它不在适当的地方可能会崩溃。检查此链接click here