苹果框架中的内存泄漏

时间:2011-10-03 20:36:19

标签: iphone objective-c ios memory-management memory-leaks

当我发布课程时,我收到了NSStrings的泄密。但我在属性中只有2个NSString。我在我的方法中使用的其他NSString,我在退出方法之前释放它们。

[somestring release],somestring = nil;

这是截图

enter image description here

这是我的问题吗?或者这个漏洞属于苹果框架?我也在课堂上使用ASIHTTPRequest。

编辑:我发现了问题。我几次使用NSMutableArray和mutableCopy方法,没有自动释放。

以前和泄漏:someMutableArray = [anotherClass.anotherMutableArray mutableCopy];

之后,没有泄漏:someMutableArray = [[anotherClass.anotherMutableArray mutableCopy] autoreleasing];

3 个答案:

答案 0 :(得分:3)

Apple的框架可能没有泄漏。

如果您将该变量传递给另一个对象而其他对象保留它而不释放,则会看到泄漏。它似乎是你分配字符串的地方,而不是第二个对象。

内存泄漏是我放弃ASIHTTPRequest的原因。我知道它来自ASIHTTPRequest,但无法找到原因。

在这种情况下,您可以做的最好的事情是查看其中一个泄漏块的块历史记录。你会看到各种保留和发布。他们应该平衡;更多,每个保留应该释放它的对应物。例如,如果您在对象设置器中看到保留对象,则应验证该setter中是否已释放先前的对象,并且dealloc中有一个版本。尝试识别泄漏的最高级别对象,因为其他泄漏可能是其成员变量。

答案 1 :(得分:2)

在乐器中,左侧有一个名为Call Tree的部分。选中“隐藏系统库”时,只显示方法调用。您应该尝试这样来查看您自己的代码是否与泄漏有关。

答案 2 :(得分:0)

您需要在dealloc方法中发布变量。

相关问题