【发布时间】:2019-04-27 13:47:02
【问题描述】:
我有一些具有一对多父子关系的 NSManagedObjects,其中“children”属性是 NSOrderedSet。
当我创建一个新的孩子时,我在一个孩子 NSManagedObjectContext 中这样做。我在子集的索引 0 处插入子元素。
在我保存子上下文之前,我观察到父母的孩子看起来像:
父母
- 孩子1
- 孩子2
- 孩子3
- Kid4(新)
但是当我继续保存父上下文时,我检查了“updatedObjects”属性,发现父级的子级排序不正确!
父母
- 孩子1
- 孩子2
- 孩子3
- Kid4(新)
注意: 这只发生在新创建的孩子身上。如果在我创建子上下文时孩子已经存在,我可以更改它们在子上下文中的顺序,并且它们在有序集中的位置会适当地保存在父上下文中。
我尝试过弄乱父子上下文的合并策略。现在它们被配置为默认的错误策略,保存时不会抛出任何错误。
【问题讨论】:
-
我假设在该关系的数据模型检查器中,ordered 复选框已打开。另外,我想您需要发布一些代码来显示如何将新孩子添加到关系中。
标签: core-data nsmanagedobjectcontext nsorderedset