iphone编程中的内存泄漏?

时间:2011-10-01 08:23:19

标签: iphone memory-management memory-leaks analysis

任何人都可以帮助我理解此图片中的问题

enter image description here

3 个答案:

答案 0 :(得分:4)

正如分析员所说,你是在 647 上分配 locs ,使用
NSMutableArray *locs = [[NSMutableArray alloc] init]; 并且不会在块中稍后释放它。您应该发布它,或者您可以使用便利构造函数来获取这样的自动释放数组, NSMutableArray *locs = [NSMutableArray array];

我建议您仍然将代码简化为此,

NSMutableArray *annotations = (NSMutableArray *)[map annotations];
[annotations removeObject:[map userLocation]];
[map removeAnnotations:annotations];

答案 1 :(得分:1)

您需要在最后发布loc。你已经分配并初始化它,给它一个引用计数为1,然后你应该释放它以将引用计数更改为0.有关更多信息,请参阅http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/MemoryMgmt/

答案 2 :(得分:0)

您已初始化locs数组,然后必须在关闭该函数之前释放该数组:[locs release];locs=nil;