0
我想我有内存泄漏,我已经启用僵尸,并在剖析器中突出显示了这部分代码,我已经标记了百分比。Obj-C,僵尸内存泄漏,我看不到它?
这对我来说很好。
任何想法?
[NSThread detachNewThreadSelector:@selector(threadStartAnimating:)
toTarget:self withObject:nil];
NSMutableArray *tmpArray = [[NSMutableArray alloc]init];
if (metadata.isDirectory) {
for (DBMetadata *file in [metadata.contents reverseObjectEnumerator]) {
[tmpArray addObject:file.filename]; -- 44%
}
}
self.itemArray = tmpArray;
[tmpArray release];
[self.dropboxTableView reloadSections:[NSIndexSet indexSetWithIndex:0]
withRowAnimation:UITableViewRowAnimationFade]; -- 55.6%
[activityIndicator stopAnimating];
编辑
在接口方面: -
NSMutableArray *itemArray;
僵尸不是用来检测泄漏的;它们用于告诉你是否尝试访问已分配的对象。 http://www.cocoadev.com/index.pl?NSZombieEnabled – occulus 2011-12-18 15:57:34
您使用哪种分析器?内存或CPU?这些分配百分比,还是泄漏百分比? – 2011-12-18 15:59:50
当你说'分析器'时,你的意思是内存泄漏工具吗? 读取工具的输出并不总是很直接,因为它经常会显示你分配内存的位置,而不是代码中导致泄漏的位置。 因此,mem泄漏工具的屏幕截图可能非常方便。但通常,我会查看上面%代码中指定的代码。例如,你的tmpArray被设置为self.itemArray - 所以在别处泄漏self.itemArray的东西? – occulus 2011-12-18 16:01:43