ios - 兄弟 NSManagedObjectContext 如何交互?

标签 ios core-data nsfetchedresultscontroller nsmanagedobjectcontext

如果我有 3 个 NSManagedObjectContext。

一个。是根上下文。

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

C.是在 NSFetchedResultsController 中使用的子上下文

布局是这样的

  A
 / \
B   C

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

我的理论正确吗?或者我需要做些什么才能让 C 看到来自 A 的更新。我希望更改在进行时弹出到 tableview 中。

具体来说,我试图了解这些 child 如何响应父环境的变化,以及这如何导致 NSFetchedResultsController 触发更新。

最佳答案

由于保存只会将更改向上推送一个级别,因此只有当您再次获取时,managedObjectContext 的子项才会获得对其父上下文所做的更改。

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

无论如何,在您的示例中,如果 A 和 B 正在写入和读取数据库,为什么不让 C 成为 B 的子节点?这样,保存 C 也将更新 UI,而保存 B 将推送更改并将它们排队等待保存。

关于ios - 兄弟 NSManagedObjectContext 如何交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17170482/

相关文章:

ios - 如果它是 subview Controller ,如何将 AppDelegate 中的 managedObjectContext 传递给正确的 View Controller ?

ios - PJSIP 不响应 401 的身份验证

ios - 无法使用 NSKeyedArchiver 存档自定义类对象

iphone - NSFetchRequest 不显示任何内容

ios - 无法在 Swift 中使用 NSPredicate 查询日期

iphone - 如何提高核心数据性能?

ios - 如何检测iphone是否处于静音模式

ios - 未使用 Storyboard 调用 UITextField 的委托(delegate)

ios - 使用或 || if 语句中的运算符以评估变量(不等于两(2)个字符串)

ios - 核心数据 - 查询对多关系