0

我有一些具有一对多父子关系的 NSManagedObjects,其中“children”属性是 NSOrderedSet。

当我创建一个新的孩子时,我在一个孩子 NSManagedObjectContext 中这样做。我在子集的索引 0 处插入子元素。

在我保存子上下文之前,我观察到父母的孩子看起来像:

家长

  • 孩子1
  • 孩子2
  • Kid3
  • Kid4(新)

但是当我继续保存父上下文时,我检查了“updatedObjects”属性,发现父级的子级排序不正确!

家长

  • 孩子1
  • 孩子2
  • Kid3
  • Kid4(新)

注意:这只发生在新创建的孩子身上。如果在我创建子上下文时孩子已经存在,我可以更改它们在子上下文中的顺序,并且它们在有序集中的位置会适当地保存在父上下文中。

我试过搞乱父子上下文的合并策略。现在它们被配置为默认的错误策略,保存时不会抛出任何错误。

4

1 回答 1

0

我的主要问题与跨线程核心数据的使用有关。

我预计跨线程滥用的症状会更加明显,但这就是它们对我的表现。确保我从所有线程正确访问托管对象上下文解决了我的问题。

于 2019-06-09T16:43:06.440 回答