Как получить упорядоченный список управляемых объектов coredata через доступ к ним через отношения? - PullRequest
0 голосов
/ 05 декабря 2011

Как получить упорядоченный список управляемых объектов coredata через доступ к ним через отношения?

То есть:

  • имеют следующие объекты: LIST, LIST_ITEM (включает поле 'Order') и ITEM.
  • предположим, что я уже получил список, с которым хочу работать
  • Затем я могу использовать отношения coredata, чтобы получить LIST_ITEMS с помощью отношения: например, "list1.listItems", а затем для каждого из этих LIST_ITEMS я могу получить ПУНКТ ("listItem1.item")

Но если я действительно просто хочу из СПИСКА упорядоченный список ПУНКТОВ из списка, основанный на поле "Порядок" в LIST_ITEM, какой самый простой способ сделать это?

Ответы [ 2 ]

2 голосов
/ 05 декабря 2011

Вы можете отсортировать элементы, возвращаемые связью, используя NSSortDescriptor, так же, как в обычном запросе на выборку.Например:

NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"order" ascending:YES] autorelease];
NSArray *sortedListItems =  [list1.listItems sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];

Ключевым методом здесь является [NSSet sortedArrayUsingDescriptors:]

1 голос
/ 05 декабря 2011

Я думаю, что правильно понимаю вопрос, но я думаю, что лучший способ получить списки из CoreData - это создать предикат compoun и затем искать элементы таким образом. Например, если я ищу только События (сущность) в определенный день, для конкретного пользователя (другой сущности). Затем я могу создать NSFetchRequest для записи о событии и указать и NSPredicate в форме (user.name ==% @) AND (event.date ==% @), указав имя и дату пользователя

...