Предположим, у Вас были Базовые отношения Данных, такие как:
Book ---->> Chapter ---->> Page
Данный a Book
объект называют aBook
, aBook.chapters
возвратит главы книги. Но как Вы получаете страницы книги (т.е. book.pages
)? И как Вы отсортировали бы страницы по a pageNumber
свойство?
Спасибо!
Для экземпляра Book
, myBook
:
NSSet* pages = [myBook valueForKeyPath:@"chapters.@unionOfSets.pages"];
даст вам объединение всех страниц. См. Раздел « Операторы набора и массива » в руководстве по программированию кодирования ключевого значения.
NSArray *chaperPages = [myBook.chapters valueForKeyPath:@"pages"];
даст вам массив из NSSet
s страниц, по одному набору на главу.
Самый быстрый способ получить все страницы
книги Book
(myBook
), отсортированные по pageNumber
:
NSSet *pageSet = [myBook valueForKey:@"chapters.@unionOfSets.pages"];
NSSortDescriptor *sortDesc = [[NSSortDescriptor alloc] initWithKey@"pageNumber" ascending:YES];
NSArray *pages = [pageSet sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDesc]];
[sortDesc release];
Это даст массив со всеми страницами из всех глав, отсортированными по pageNumber