【发布时间】:2011-10-01 08:23:18
【问题描述】:
谁能帮我理解这张图片中的问题
【问题讨论】:
-
这很简单,只需在关闭大括号之前释放
locs。我想说,真的!这是你想问的?
标签: iphone memory-management memory-leaks analysis
谁能帮我理解这张图片中的问题
【问题讨论】:
locs。我想说,真的!这是你想问的?
标签: iphone memory-management memory-leaks analysis
正如分析器所说,您在第 647 行分配 locs,使用NSMutableArray *locs = [[NSMutableArray alloc] init]; 并且稍后不会释放它块。你应该释放它,或者你可以使用方便的构造函数来获取这样的自动释放数组,NSMutableArray *locs = [NSMutableArray array];
我建议您仍然将代码简化为这样,
NSMutableArray *annotations = (NSMutableArray *)[map annotations];
[annotations removeObject:[map userLocation]];
[map removeAnnotations:annotations];
【讨论】:
你需要在最后释放 locs。您已分配并初始化它,给它一个引用计数 1,然后您应该释放它以将引用计数更改为 0。有关更多信息,请参阅 http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/MemoryMgmt/。
【讨论】:
您已经初始化了 locs 数组,然后您必须在关闭该函数之前释放该数组:[locs release];locs=nil;
【讨论】: