2013-05-16 52 views

回答

0

基本上你會用你NSFetchedResultsController,並提取每個需要管理的對象,並可能高達3查詢(取決於你的數據庫是如何設計的,如果有關係,它可能只是一個) 。

一旦你有了這個,其他部分幾乎與你用3個部分填充表格一樣。你可以做這樣的事情:

typedef enum 
{ 
    kMyTableSection1, 
    kMyTableSection2, 
    kMyTableSection3 
}kMyTableSectoinTypes 

then in your cellForRowAtIndexpath... 

switch (indexpath.section) 

case : kMyTableSection1 
//Object at index from the correct array which you got from your previous query using the fetched results controller. 

希望有所幫助。

+0

如果我創建了一個名爲「Event」的管理對象的不同管理對象子類,然後只是獲取所有事件,該怎麼辦? – Aaronium112

+0

事實上,它們是否是子類不會改變抓取,你可以做什麼來一次抓取所有東西,如果它們是相關的,你可以在你的數據庫中建立關係,這樣一個抓取就可以把你需要的所有對象。 –

0

這對於使用NSFetchedResultsController可能有點困難,因爲它通常使用NSFetchRequest進行初始化,而NSFetchRequest僅使用一個實體。我相信你應該:

a。從核心數據定期自己獲取的所有數據,然後將它們導入表視圖,你通常會喂陣列:

NSMutableArray *objectsArray = [NSMutableArray array]; 
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
[fetchRequest setEntity:sleepEntity]; 
[objectsArray addObjectsFromArray:[managedObjectContext executeFetchRequest:fetchRequest error:NULL]]; 
[fetchRequest setEntity:waterEntity]; 
[objectsArray addObjectsFromArray:[managedObjectContext executeFetchRequest:fetchRequest error:NULL]]; 
[fetchRequest setEntity:foodEntity]; 
[objectsArray addObjectsFromArray:[managedObjectContext executeFetchRequest:fetchRequest error:NULL]]; 

// now display objectsArray in a table view as you normally would. 

灣另外,你應該考慮使用一個框架,比如Sensible TableView。憑藉Sensible,您可以自動完成所有工作,包括對象的詳細視圖。我已經使用了一段時間了,我幾乎沒有碰到任何上面的代碼。

+1

哇。 Sensible TableView看起來非常棒。 – Aaronium112