NSFetchedResultsController - 从部分中删除所有行后崩溃

时间:2012-08-09 19:09:02

标签: objective-c ios core-data

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

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

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

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

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。但是,如果您通过添加以下内容对所有更改进行“分组”:

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


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

它可以正常工作。