实施四种委托方法有什么好处:
(void)controllerWillChangeContent:(NSFetchedResultsController *)controller
(void)controller:(NSFetchedResultsController *)controller didChangeSection:(id)sectionInfo atIndex:(NSUInteger)sectionIndex forChangeType:(NSFetchedResultsChangeType)type
(void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath
(void)controllerDidChangeContent:(NSFetchedResultsController *)controller
而非实施:
任何帮助赞赏//:)
答案 0 :(得分:3)
当您使用带有表视图的FetchedResultsController时,您可以实现这四个委托方法,以响应对获取的结果所做的每个更改,并在表中发生更改时设置动画。但是,正如NSFetchedResultsControllerDelegate documentation 所述:
动画所有更改可能在计算上很昂贵。您可以只实现controllerDidChangeContent :(在处理完所有挂起的更改后发送给委托)重新加载表视图,而不是单独响应更改(如“典型使用”中所示)
因此,如果您正在进行一系列更改,您只需实现controllerDidChangeContent并使用[self.tableView reloadData]
之类的内容立即响应所有这些更改。