2010-07-30 62 views
1

假如你有這樣的核心數據關係獲取相關記錄:核心數據 - 如何通過一個連接表

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

給定一個名爲aBookBook對象,aBook.chapters將返回本書的章節。但是,如何獲得圖書的頁面(即book.pages)?並且,如何獲得按pageNumber屬性排序的頁面?

謝謝!

+0

排序的所有章節的所有頁面它將如果您停止思考SQL中的核心數據,可以提供幫助。核心數據中沒有連接表。核心數據是一個對象圖管理系統。實體不是表格。屬性不是列,行不是管理對象。如果您在對象中思考,Core Data變得更加容易理解。 – TechZen 2010-07-31 06:59:14

回答

2

給定一個Book實例,myBook

NSSet* pages = [myBook valueForKeyPath:@"[email protected]"]; 

會給你所有頁面的結合。請參閱鍵值編碼編程指南中的「Set and Array Operators」部分。

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

會給你一個NSSet s的頁面,每章一組。

0

最快的方式來獲得所有Page s的BookmyBook)由pageNumber排序是:

NSSet *pageSet = [myBook valueForKey:@"[email protected]"]; 
NSSortDescriptor *sortDesc = [[NSSortDescriptor alloc] [email protected]"pageNumber" ascending:YES]; 
NSArray *pages = [pageSet sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDesc]]; 
[sortDesc release]; 

這將產生一個陣列,由pageNumber