假如你有這樣的核心數據關係獲取相關記錄:核心數據 - 如何通過一個連接表
Book ---->> Chapter ---->> Page
給定一個名爲aBook
Book
對象,aBook.chapters
將返回本書的章節。但是,如何獲得圖書的頁面(即book.pages
)?並且,如何獲得按pageNumber
屬性排序的頁面?
謝謝!
假如你有這樣的核心數據關係獲取相關記錄:核心數據 - 如何通過一個連接表
Book ---->> Chapter ---->> Page
給定一個名爲aBook
Book
對象,aBook.chapters
將返回本書的章節。但是,如何獲得圖書的頁面(即book.pages
)?並且,如何獲得按pageNumber
屬性排序的頁面?
謝謝!
給定一個Book
實例,myBook
:
NSSet* pages = [myBook valueForKeyPath:@"[email protected]"];
會給你所有頁面的結合。請參閱鍵值編碼編程指南中的「Set and Array Operators」部分。
NSArray *chaperPages = [myBook.chapters valueForKeyPath:@"pages"];
會給你一個NSSet
s的頁面,每章一組。
最快的方式來獲得所有Page
s的Book
(myBook
)由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
排序的所有章節的所有頁面它將如果您停止思考SQL中的核心數據,可以提供幫助。核心數據中沒有連接表。核心數據是一個對象圖管理系統。實體不是表格。屬性不是列,行不是管理對象。如果您在對象中思考,Core Data變得更加容易理解。 – TechZen 2010-07-31 06:59:14