Базовые Данные - Как получить связанные записи через объединяющую таблицу

Предположим, у Вас были Базовые отношения Данных, такие как:

Book ---->> Chapter ---->> Page

Данный a Book объект называют aBook, aBook.chapters возвратит главы книги. Но как Вы получаете страницы книги (т.е. book.pages)? И как Вы отсортировали бы страницы по a pageNumber свойство?

Спасибо!

1
задан Samantha Baxton 30 July 2010 в 19:21
поделиться

2 ответа

Для экземпляра Book , myBook :

NSSet* pages = [myBook valueForKeyPath:@"chapters.@unionOfSets.pages"];

даст вам объединение всех страниц. См. Раздел « Операторы набора и массива » в руководстве по программированию кодирования ключевого значения.

NSArray *chaperPages = [myBook.chapters valueForKeyPath:@"pages"];

даст вам массив из NSSet s страниц, по одному набору на главу.

2
ответ дан 2 September 2019 в 22:33
поделиться

Самый быстрый способ получить все страницы книги 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

0
ответ дан 2 September 2019 в 22:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: