总共Noob在这个论坛上第一次假设。
我正在编写我的第一个iPhone应用程序。有问题的代码是在cellForRowAtIndexPath方法中填充我的UITableViewCell。
当我打开Leaks Instrument运行我的应用程序时,泄漏部分指向我的代码的这一部分。我已经阅读了关于本网站各种书籍和帖子的内存管理,据我所知,下面的代码似乎符合所需的alloc / release编码指南。但是,Leaks工具仍指向此特定部分。我根本不明白为什么。
我们将不胜感激。
ModelClass * myModelData = [myTempDataArray objectAtIndex:[indexPath row]];
NSString * myURL = [[NSString alloc] initWithFormat:@"%@/images/%@", SERVER_URL, [myModelData publisherLogoFileName]];
NSURL * imageURL = [[NSURL alloc] initWithString:myURL];
[myURL release];
[[cell productImageM] setUrl:imageURL];
[imageURL release];
[[self objMan] manage:[cell productImageM]];
return cell;
答案 0 :(得分:1)
泄漏工具不会告诉您应该释放对象的位置,它会告诉您分配对象的位置。
这段代码看起来很好;你拥有myURL足够长的时间来创建imageURL然后释放它。您将imageURL提供给单元格的productImageM,然后将其释放。然后对你不拥有的对象进行一些操作。
猜测,[cell productImageM]返回的对象类型会保留其Url属性,然后泄漏它。
答案 1 :(得分:0)
您可以尝试使用Build&从“生成”菜单中分析选项。一般来说,它应该表明泄漏的确切线。