NSOrderedSet в дочернем NSManagedObjectContext теряет порядок при сохранении - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть несколько NSManagedObjects с отношением родитель-потомок один-ко-многим, где свойство children является NSOrderedSet.

Когда я создаю новый дочерний элемент, я делаю это в дочернем элементе NSManagedObjectContext. Я вставляю дочерний элемент в индекс 0 набора дочерних элементов.

Прежде чем сохранить дочерний контекст, я замечаю, что дети родителя выглядят так:

Родитель

  • KID1
  • KID2
  • Kid3
  • Kid4 (новый)

Но когда я продолжаю сохранять родительский контекст, я проверяю свойство "updatedObjects" и вижу, что дочерние родительские элементы упорядочены неправильно!

Родитель

  • KID1
  • KID2
  • Kid3
  • Kid4 (новый)

Примечание: Это происходит только с недавно созданными детьми. Если дочерние элементы уже существуют, когда я создаю дочерний контекст, я могу изменить их порядок в дочернем контексте, и их позиции в упорядоченном наборе соответствующим образом сохраняются в родительском контексте.

Я пытался связываться с политиками слияния родительского и дочернего контекстов. Прямо сейчас они настроены на политику ошибок по умолчанию, и при сохранении не выдается никаких ошибок.

1 Ответ

0 голосов
/ 09 июня 2019

Моя главная проблема была связана с использованием Core Data в нескольких потоках.

Я ожидал, что симптомы злоупотребления несколькими нитями станут более очевидными, но именно так они проявились для меня. Убедившись, что я правильно обращался к контекстам управляемого объекта из всех потоков, я решил мои проблемы.

...