核心数据:为什么需要NSFetchedResultsControllerDelegate?

时间:2012-07-31 21:02:20

标签: ios core-data

根据我的理解,NSFetchedResultsController负责将数据从托管对象上下文同步到表视图控制器。代表在这里扮演什么角色?我阅读了苹果文档并且没有得到它。请简明扼要地阐述这个问题。

1 个答案:

答案 0 :(得分:0)

嗯,简单的回答是委托方法允许您在NSFetchedResultsController(NSFRC)中对托管对象执行操作时适当地更新表视图。

例如,如果删除NSFRC结果中的对象,则可以通过删除相应的行来更新表。

因此...

  • controllerWillChangeContent:中,最好告诉您的表格视图您要更改它(因此您应该在其上调用beginUpdates:

  • 当管理对象更改(添加,删除,移动等)时,将调用
  • controller:didChangeObject:atIndexPath:forChangeType。根据需要更新表格视图(例如,如果删除了托管对象,则通过调用deleteRowsAtIndexPaths:withRowAnimation:

  • controller:didChangeSection:atIndex:forChangeType与上述类似,但适用于表格视图部分。

  • 更改完成后,将调用
  • controllerDidChangeContent。完成此方法也可以在表格视图

  • 上调用endUpdates:

希望这有所帮助。