保存时子NSManagedObjectContext中的NSOrderedSet失去顺序

时间:2019-04-27 13:47:03

标签: core-data nsmanagedobjectcontext nsorderedset

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

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

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

父母

  • 孩子1
  • 孩子2
  • 孩子3
  • 孩子4(新)

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

父母

  • 孩子1
  • 孩子2
  • 孩子3
  • 孩子4(新)

注意: 这仅在新创建的子代中发生。如果在创建子上下文时这些子已经存在,则可以更改它们在子上下文中的顺序,并将它们在有序集中的位置适当地保存在父上下文中。

我尝试弄乱父级和子级上下文的合并策略。现在,它们已配置为默认的错误策略,并且在保存时不会引发任何错误。

1 个答案:

答案 0 :(得分:0)

我这里的主要问题与跨线程Core Data的使用有关。

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

相关问题