我有一个使用coredata的应用程序。数据下载发生在A类中.Coredata更新/保存/删除在SharedDelegate(B)中。委托在A中启动下载并实现其协议以在下载完成时得到通知,因此委托可以更新其在数据库中的数据。
现在,在那之后,我希望具有UITableview的C类更新其行和单元格,以便我可以显示新内容。
我如何正确地通知C,它可以更新其表格?可能发生的错误有哪些?
下载和更新当然是异步发生的,到目前为止,我只在所有下载完成后才更新....我想分开任务,这样说。
任何提示?
答案 0 :(得分:6)
两个选项:
使用NSFetchedResultsController
作为表格视图的数据源。 NSFetchedResultsController
的文档包含许多您可以复制的代码。粘贴到您的应用程序中,以便在托管对象上下文发生更改时管理表视图更新。
注册NSManagedObjectContextObjectsDidChangeNotification
。在您的通知方法中,处理案例NSInsertedObjectsKey
,NSUpdatedObjectsKey
和NSDeletedObjectsKey
并相应地更新您的表格视图。
答案 1 :(得分:1)
使用NSNotificationCenter
。设置类C以侦听通知并相应地重新加载数据。当SharedDelegate B更新数据时,发布通知。