2011-03-22 35 views
0

我有三個具有一對多關係的實體(圖書< --- >>頁< --- >>文字) 我想使用一個表格視圖來呈現Book.titles,一個表格視圖爲Page。點擊Page.no時不顯示文字和一個視圖。iPhone:每個實體的NSFetchedResultsController?

我是否需要爲每個實體設置fetchedResultsController,還是可以使用Book實體 - Book.pages ...等訪問Text對象 ?

回答

1

如果我正確理解你的問題,你只需要一個提取的結果控制器,CoreData將完成剩下的工作。

所以,你用你想要顯示的所有書籍填充一個NSFetchedResultsController,並用UITableViewController子類呈現它們。然後,當用戶選擇一個,您將本書傳遞給另一個使用book.pages獲取並顯示該書中所有頁面的UITableViewController子類。這個想法然後重複顯示文本實體。

HTH

PS - 如果你沒有準備好,你可能會發現使用Xcode的管理對象類發電機,以確保book.pages和pages.texts的設置是否正確。要使用它,打開你的.xcdatamodel文件,突出顯示一個實體並選擇File-> New File並選擇Managed Object Class,然後按照下面的步驟操作。

0

您可以通過關係訪問所有對象,但取決於您的表視圖的複雜程度,管理數據源方法可能會非常棘手。這是可以做到的!

舉例來說,如果你決定取書,只要你有你的所有頁面實例的引用,並把它們放在一個陣列,:

Book *bookItem = [self.frc objectAtIndexPath:indexPath]; 
NSArray *dataSource = [[book objectForKey:@"pages"] allObjets]; 

另一種選擇是創建一個抽象類並使其成爲所有3個實體的父代,然後使用此類獲取所有書籍,頁面和文本。從那裏你可以測試班級並相應地填充表格。

相關問題