在我的理解中,NSFetchedResultsController执行从管理对象上下文同步数据到表视图控制器的工作。代表在这里的作用是什么?我读了苹果文档,并没有得到它。请简明扼要地阐述这个问题。核心数据:为什么需要NSFetchedResultsControllerDelegate?
2
A
回答
0
那么,简单的答案是,委托方法允许您在NSFetchedResultsController(NSFRC)中的托管对象上采取操作时适当地更新表视图。
例如,如果删除NSFRC结果中的对象,则可以通过删除相应的行来更新表。
所以......
在
controllerWillChangeContent:
这是一个好主意,告诉你要改变它的表视图(所以你应该调用它的beginUpdates:
)controller:didChangeObject:atIndexPath:forChangeType
在托管对象更改(添加,删除,移动等)时调用。根据情况更新表格视图(例如,如果管理对象被删除,则调用deleteRowsAtIndexPaths:withRowAnimation:
)controller:didChangeSection:atIndex:forChangeType
与上述内容类似,但是对于表格视图部分。controllerDidChangeContent
在更改完成时被调用。在这个方法结束也呼吁endUpdates:
在您的表视图
希望这有所帮助。
相关问题
- 1. 核心数据NSFetchedResultsControllerDelegate问题
- 2. ios核心数据NSFetchedResultsControllerDelegate崩溃
- 3. iphone核心数据 - 为什么核心数据如此之慢?
- 4. 什么是核心数据的.omo文件?需要吗?
- 5. 核心数据轻量级迁移:触发它需要什么?
- 6. 核心数据需要帮助
- 7. 为什么我需要2个或更多核心数据模型?
- 8. EF核心为什么迁移需要名称?
- 9. 需要知道为什么核心文件已基因处理
- 10. 核心数据:更新托管对象不会调用NSFetchedResultsControllerDelegate
- 11. 为什么我们需要数据库表中的审核列?
- 12. 为什么uploadTaskWithRequest:fromData:需要数据参数?
- 13. 为什么核心转储?
- 14. 核心服务,核心基础和核心数据有什么区别?
- 15. 为什么oozie需要数据库?
- 16. 为什么ANSIBLE不需要数据库?
- 17. 为什么需要多个数据库?
- 18. iPhone:为什么批量插入核心数据这么慢?
- 19. GLSL需要什么数据?
- 20. 什么是核心?
- 21. 核心数据 - iCloud行为
- 22. 只有一个值正在写入核心数据。为什么?
- 23. iOS核心数据 - 为什么它有效?
- 24. 为什么核心数据不会保存到磁盘?
- 25. 为什么我的核心数据保存速度很慢?
- 26. 核心数据合成类而不是类,为什么?
- 27. 为什么我的核心数据没有更新?
- 28. 为什么需要openssl才能在OS X/Mac OS上运行.NET核心?
- 29. 为什么需要
- 30. 为什么需要“{} \”?
为什么不把这些方法放在NSFetchedResultsConroller类中?为什么需要一个代表? – Philip007 2012-07-31 21:23:13
这是NSFRC让委派人了解任何管理对象何时发生变化的优雅方式,以便您可以对此执行操作。使它们成为类或实例方法将不起作用,因为这会假设您总是知道何时管理对象发生了变化。这不是唯一可以完成的方式。这里有一些想法:http://blog.shinetech.com/2011/06/14/delegation-notification-and-observation/ – 2012-07-31 21:39:35
如果你想在这里使用类或实例方法,那么它听起来像你想控制自己管理对象。在这种情况下,你可以选择不使用NSFRC,这是完全有效的。然而,在我看来,尽管设置它最初的麻烦,但我发现它不仅消除了管理对象和表视图的一些痛苦,而且还增加了其他有用的行为。 – 2012-07-31 21:50:45