假设您有一个核心数据关系,例如:
Book ---->> Chapter ---->> Page
如果Book
对象名为aBook
,aBook.chapters
将返回本书的章节。但是你怎么得到一本书的页面(即book.pages
)?您如何通过pageNumber
属性对页面进行排序?
谢谢!
答案 0 :(得分:2)
给定Book
个实例,myBook
:
NSSet* pages = [myBook valueForKeyPath:@"chapters.@unionOfSets.pages"];
将为您提供所有页面的联合。请参阅键值编码编程指南中的“Set and Array Operators”部分。
NSArray *chaperPages = [myBook.chapters valueForKeyPath:@"pages"];
将为您提供一组NSSet
个页面,每章一组。
答案 1 :(得分:0)
获取按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