2

所以我们有这个表视图自定义单元格和它自己的类。在课堂上,我们正在使用 Key Value Pair Observers。是的,我们有理由这样做......

无论如何,在某些时候正在变得...

An instance 0x7680410 of class CustomCellBase was deallocated while key value observers
were still registered with it. Observation info was leaked, and may even become mistakenly
attached to some other object.

这当然是由于细胞被“重用”。

清除这些的最佳方法是什么?有办法吗?是不是我们不能在自定义表格单元格中使用观察者?

4

1 回答 1

1

当单元格从视图中移除时,您需要停止观察单元格。

- (void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    [[NSNotificationCenter defaultCenter] removeObserver:cell];
}

否则 NSNotificationCenter 将尝试在已删除的单元格上触发选择器,从而导致错误。当然,当单元格出现时,您需要重新注册单元格。

于 2013-07-30T09:06:58.997 回答