ios – 核心数据:父上下文更改未合并到子上下文中

ios – 核心数据:父上下文更改未合并到子上下文中,第1张

概述我的情况是:我有一个带有核心数据数据库的多线程应用程序,管理多个上下文.在我的上下文中,我有一个根节省上下文,以及子上下文,我获取数据并进行/保存更改. >上下文A – >根父上下文 >上下文B – > A的子背景 >上下文C – > A的子背景 上下文B用于获取数据并在View Controller的视图中显示. 上下文C用于保存后台线程中的更改. 问题是当我在上下文C中进行更改时,保存上下文C 我的情况是:我有一个带有核心数据数据库的多线程应用程序,管理多个上下文.在我的上下文中,我有一个根节省上下文,以及子上下文,我获取数据并进行/保存更改.

>上下文A – >根父上下文
>上下文B – > A的子背景
>上下文C – > A的子背景

上下文B用于获取数据并在VIEw Controller的视图中显示.

上下文C用于保存后台线程中的更改.

问题是当我在上下文C中进行更改时,保存上下文C和A,更改不会传播或合并到上下文B中.更改在上下文A和C中正确保留,但不在B中.

我认为默认行为是父上下文A中的更改将传播到它的子上下文B中,但它不会发生.实现这一目标的正确方法是什么?

解决方法 如果您正在处理iOS 10项目,可以尝试将Context B上的automaticmergesChangesFromParent属性设置为true.

对于较旧的项目,您必须自己合并更改:

>观察NSManagedobjectContextDIDSave通知.确保在订阅时使用Context C作为对象.否则,您将收到来自已保存的任何上下文的通知,而不仅仅是来自Context C.>使用NSManagedobjectContext.mergeChanges(fromContextDIDSave :)更新Context B. Objective-C选择器是-mergeChangesFromContextDIDSaveNotification:

总结

以上是内存溢出为你收集整理的ios – 核心数据:父上下文更改未合并到子上下文中全部内容,希望文章能够帮你解决ios – 核心数据:父上下文更改未合并到子上下文中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1062995.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存