Основные данные - Как получить связанные записи через таблицу соединений - PullRequest
1 голос
/ 30 июля 2010

Предположим, у вас было отношение Core Data, такое как:

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

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

Спасибо!

Ответы [ 2 ]

2 голосов
/ 31 июля 2010

При наличии экземпляра Book, myBook:

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

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

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

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

0 голосов
/ 31 июля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...