子父上下文保存冲突

Posted

技术标签:

【中文标题】子父上下文保存冲突【英文标题】:Child Parent Context Save Conflicts 【发布时间】:2015-11-09 02:46:06 【问题描述】:

保存子 NSManagedObjectContext 并将更改推送到父 NSManagedObjectContext 时如何解决冲突?

例如,假设您正在更新 NSManagedObject Person,方法是在子上下文中将属性 age 设置为 18,并使用来自服务器的数据中的 NSPrivateQueueConcurrencyType。同时,相同的NSManagedObjectPersonage属性被用户在父NSManagedObjectContextNSMainQueueConcurrencyType上更新为值20。

在两次更新后,将在子上下文中调用保存,该子上下文传播到父 NSManagedObjectContext

此时年龄的价值是多少?孩子NSManagedObjectContext 是否覆盖了父母NSManagedObjectContextNSMergePolicies在这里申请吗?

【问题讨论】:

【参考方案1】:

从子级保存到父级时没有冲突解决。无论父级有什么值,或者父级本身是否有未保存的更改,子级总是会更改父级。

此外,没有合并策略或内置的其他方式来改变这种行为。

可以编写自己的合并策略管理,但有点棘手。了解规则可能会更好。

【讨论】:

以上是关于子父上下文保存冲突的主要内容,如果未能解决你的问题,请参考以下文章

上下文检测冲突对象

实际上,Core Data 如何检测冲突?

当尝试使用selfTracking时,我收到客户端错误

as3 加载swf防止子父swf冲突 笨方法解决

尝试保存第二个任务时服务的“并发”错误

去除上下移动冲突,横向ListView