兄弟NSManagedObjectContext如何交互?

时间:2013-06-18 13:41:23

标签: ios core-data nsfetchedresultscontroller nsmanagedobjectcontext

如果我有3个NSManagedObjectContexts。

一个。是根的背景。

B中。是一个后台保存上下文,在解析JSON后生成NSManagedObjects

℃。是NSFetchedResultsController

中使用的子上下文

布局就像这样

  A
 / \
B   C

当我在B中进行更改时,我告诉B保存,然后我告诉B.parent保存。我的想法是,它会触发C向我的UITableView发送更新,以支持它。

我的理论是否正确?或者我需要做些什么才能让C从A看到更新。我希望更改能够在制作时弹出到tableview中。

具体来说,我试图了解这些孩子如何响应其父上下文中的更改以及这是如何导致NSFetchedResultsController触发更新的。

1 个答案:

答案 0 :(得分:1)

由于保存仅将更改推高一级,因此只有再次获取时,managedObjectContext的子级才会获得对其父上下文所做的更改。

有关嵌套上下文如何工作的更多信息,请查看WWDC 2011中的视频What's New in Core Data for iOS

无论如何,在你的例子中,如果A在数据库中写入和读取,并且B,为什么不让C成为B的孩子呢?这样,保存C也将更新UI,而保存B将推送更改并将其排队以进行保存。