如何用多種不同類型的NSManagedObjects填充UITableView? 我正在構建數字培訓雜誌,所以目前我的三種類型是「睡眠」,「食物」&「水」。 我已經成功地使用NSFetchedResultsController爲1對象類型,但推廣到三個尚未。如何用3種不同類型的NSManagedObjects填充UITableView
謝謝。
如何用多種不同類型的NSManagedObjects填充UITableView? 我正在構建數字培訓雜誌,所以目前我的三種類型是「睡眠」,「食物」&「水」。 我已經成功地使用NSFetchedResultsController爲1對象類型,但推廣到三個尚未。如何用3種不同類型的NSManagedObjects填充UITableView
謝謝。
基本上你會用你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.
等
希望有所幫助。
這對於使用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,您可以自動完成所有工作,包括對象的詳細視圖。我已經使用了一段時間了,我幾乎沒有碰到任何上面的代碼。
哇。 Sensible TableView看起來非常棒。 – Aaronium112
如果我創建了一個名爲「Event」的管理對象的不同管理對象子類,然後只是獲取所有事件,該怎麼辦? – Aaronium112
事實上,它們是否是子類不會改變抓取,你可以做什麼來一次抓取所有東西,如果它們是相關的,你可以在你的數據庫中建立關係,這樣一個抓取就可以把你需要的所有對象。 –