cellForRowAtIndexPath中的内存泄漏:

时间:2010-12-05 16:48:26

标签: iphone objective-c uitableview ios4 nsautoreleasepool

我希望,在给定indexPath的情况下,获取对相关单元格的引用以删除复选标记。我以为我可以使用cellForRowAtIndexPath,但是我收到了消息:

__ NSAutoreleaseNoPool():类UITableView的对象0x685a600自动释放,没有池到位 - 只是泄漏

即使是这样的简单行:

[self.tableView cellForRowAtIndexPath:indexPath];

所以,这不仅仅是返回指向单元格的指针,对吧?也许我误解了这种方法的用途。是否可以简单地获取对单元格的引用来更改accessoryView? 谢谢!

1 个答案:

答案 0 :(得分:1)

此错误:_NSAutoreleaseNoPool()通常与此完全相关 - 没有自动发布池。 Autoreleasepool是基于线程的,所以如果你在后台或另一个线程上执行它(很难从这个小代码中解释),你需要在该线程中创建一个NSAutoreleasPool,并在完成执行后释放它。