Coredata и NSOrderedSet - как определяется порядок набора? - PullRequest
8 голосов
/ 29 февраля 2012

Я просмотрел существующую документацию и не смог найти ничего, что подтверждает поведение, которое я вижу.

Начиная с iOS 5, отношения CoreData могут быть упорядочены, и в этом случае возвращаемый объект является NSOrderedSet.

Может ли кто-нибудь подтвердить, что порядок объектов в наборе соответствует порядку, в котором они были созданы?

Ура, Рог

Ответы [ 2 ]

2 голосов
/ 29 февраля 2012

Если вы не сортируете порядок самостоятельно, используя sortedArrayUsingComparator:, то я считаю, что объекты сортируются в порядке их добавления.

Вы также можете вручную установить порядок с помощью – insertObject:atIndex:.

https://developer.apple.com/library/mac/#documentation/Foundation/Reference/NSMutableOrderedSet_Class/Reference/Reference.html#//apple_ref/occ/cl/NSMutableOrderedSet

1 голос
/ 06 февраля 2013

Вы должны создать NSMutabledOrderedSet с данными из вашего старого NSOrderedSet, внести изменения и переместить ваши данные обратно:

NSMutableOrderedSet *orderedSet = [[NSMutableOrderedSet alloc] initWithSet:[self.myOrderedSet set]];
[orderedSet insertObject:newObject atIndex:index];
self.myOrderedSet = orderedSet;
...