子父上下文保存冲突

时间:2015-11-09 02:46:06

标签: ios core-data concurrency nsmanagedobjectcontext nspersistentstore

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

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

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

此时的年龄值是多少?孩子NSManagedObjectContext是否会覆盖父NSManagedObjectContext?这里适用NSMergePolicies吗?

1 个答案:

答案 0 :(得分:4)

从孩子保存到父母时没有冲突解决方案。无论父项具有什么值,或者父项本身是否有未保存的更改,子项始终会更改父项。

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

可以编写自己的合并策略管理,但这有点棘手。你可能最好只知道规则。