2011-01-28 52 views
2

我有一个使用coredata的应用程序。数据下载发生在A类中.Coredata更新/保存/删除位于SharedDelegate(B)中。委托人在A中启动下载并实施其协议以在下载完成时得到通知,以便委托人可以更新其在数据库中的数据。Coredata更新后一致更新UITableview

现在,在发生这种情况之后,我希望具有UITableview的C类更新其行和单元格,以便显示新内容。

我该如何正确通知C,它可以更新其表?可能发生的错误有哪些?

下载和更新当然是异步发生的,到目前为止,只有在所有下载完成后我才会更新....我想分割任务,这样说。

任何提示?

回答

6

两个选项:

  1. 使用的NSFetchedResultsController为表视图的数据源。 NSFetchedResultsController的文档包含许多代码,您可以将&粘贴复制到您的应用中,以便在托管对象上下文发生更改时管理表视图更新。

  2. 注册为NSManagedObjectContextObjectsDidChangeNotification。在您的通知方法中,处理案例NSInsertedObjectsKey,NSUpdatedObjectsKeyNSDeletedObjectsKey并相应地更新您的表格视图。

+0

这听起来很有希望,会同时尝试。感谢您的快速回复! – Icky 2011-01-28 14:51:52

1

使用NSNotificationCenter。设置C类以侦听通知并相应地重新加载数据。当SharedDelegate B更新数据时,发布通知。