我在表视图中有一个功能,即当您点击单元格时,它会在敲击单元格下方加载更多单元格,当您再次点击同一单元格时,这些添加的单元格将被删除。
但我有一个奇怪的行为,当我调用下面的方法从表视图中删除添加的单元格时,没有调用单元格的dealloc方法..(我已经在dealloc方法中放置了一个NSLog)
[tableView deleteRowsAtIndexPaths:indexPathArray withRowAnimation:UITableViewRowAnimationTop]
当我调用insertRowsAtIndexPaths时,正在创建新的单元格实例,在我检查过的工具中,前面的实例保留在内存中,并且一次又一次地创建新实例。
所以请告诉我为什么deleteRowsAtIndexPaths没有为已删除的单元格调用release?以及这个问题的一些解决方案。我很担心因为应用程序的真实和虚拟内存消耗在连续点击时不断增加......
答案 0 :(得分:1)
您是否在dequeuereusablecellwithidentifier:
中使用UITableView的cellForRowAtIndexPath:
方法来创建新单元格?
如果没有,这是正常的。 UITableViews将单元格保留在内存中以便重用它们,并避免必须一直分配/释放。
您应该查看本教程,例如:http://www.mobisoftinfotech.com/blog/iphone/introduction-to-table-view/