子父上下文保存冲突
Posted
技术标签:
【中文标题】子父上下文保存冲突【英文标题】:Child Parent Context Save Conflicts 【发布时间】:2015-11-09 02:46:06 【问题描述】:保存子 NSManagedObjectContext
并将更改推送到父 NSManagedObjectContext
时如何解决冲突?
例如,假设您正在更新 NSManagedObject
Person
,方法是在子上下文中将属性 age
设置为 18,并使用来自服务器的数据中的 NSPrivateQueueConcurrencyType
。同时,相同的NSManagedObject
Person
age
属性被用户在父NSManagedObjectContext
和NSMainQueueConcurrencyType
上更新为值20。
在两次更新后,将在子上下文中调用保存,该子上下文传播到父 NSManagedObjectContext
。
此时年龄的价值是多少?孩子NSManagedObjectContext
是否覆盖了父母NSManagedObjectContext
? NSMergePolicies
在这里申请吗?
【问题讨论】:
【参考方案1】:从子级保存到父级时没有冲突解决。无论父级有什么值,或者父级本身是否有未保存的更改,子级总是会更改父级。
此外,没有合并策略或内置的其他方式来改变这种行为。
可以编写自己的合并策略管理,但有点棘手。了解规则可能会更好。
【讨论】:
以上是关于子父上下文保存冲突的主要内容,如果未能解决你的问题,请参考以下文章