6

我正在檢出iPhone Core Data項目的默認Xcode模板。在返回的結果中取出控制器方法我看到這一點:不同實體的多個NSFetchedResultControllers?

- (NSFetchedResultsController *)fetchedResultsController { 

    ... 

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext]; 
[fetchRequest setEntity:entity]; 
    ... 

    return fetchedResultsController; 
}  

這似乎是設置特定的實體名稱。如果我有多個實體?我有2 NSFetchedResultsController實例,並有2個方法返回正確的控制器取決於我正在使用哪個實體?

謝謝

回答

6

這要看。例如,如果您有一個從Person繼承的Person實體和Employee實體,那麼您可以使用一個NSFetchedResultsController作爲可以提取Person和Employees的Person實體。然而,如果你有類似Fruit實體和Person實體的東西(並且Person不能從Fruit繼承,反之亦然),那麼你不太可能使用1個NSFetchedResultsController來獲取Fruits和Persons。

是否需要一個或多個NSFetchedResultsController取決於您的實體繼承層次結構。

+1

在我的應用程序中,我有2個實體。任務和斌。一個bin包含多個任務,所以Bin實體與任務實體有一個To-Many關係,稱爲「tasks」。每個任務都與Bin實體有「bin」關係。我在兩者之間配置了反比關係。 Bin不從Task繼承,反之亦然,但它們確實有關係。我的方案中最好的選擇是什麼? – indragie

+1

你的桌子視圖顯示什麼?任務或箱?一個常見的UI模式將顯示Bins,然後在用戶選擇特定的Bin(主 - 細節視圖)時在特定的Bin中顯示Tasks。 – Giao

+1

這正是我正在做的。主視圖具有列出箱的表視圖,然後當選擇箱時,詳細視圖具有另一個表視圖,該視圖顯示該箱中的任務。 – indragie

相關問題