2

我将 UITableView 与 NSFetchedResultsController 一起使用。NSFetchedResultsControllerDelegate 的所有方法的实现都类似于 Apple 的文档。但是从数据库中删除所有部分的行后,我收到“无效更新”异常。

委托按以下顺序处理此操作:

  • 首先执行controller:didChangeSection:方法并删除变为空的部分。
  • 然后执行controller:didChangeObject:方法,该方法尝试从已删除的部分中删除行。它会导致异常。

我做错了什么以及如何处理这种情况?谢谢你。

4

1 回答 1

1

我有同样的问题。但是,如果您通过添加“分组”所有更改:

- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller {
    [self.tableView beginUpdates];
}


- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller {
    [self.tableView endUpdates];
}

它应该工作得很好。

于 2012-09-07T11:27:46.723 回答