多个NSFetchedResultControllers用于不同的实体?

时间:2010-02-21 20:23:00

标签: iphone objective-c cocoa-touch core-data nsfetchedresultscontroller

我正在查看iPhone Core Data项目的默认Xcode模板。在返回获取的结果控制器的方法中,我看到:

- (NSFetchedResultsController *)fetchedResultsController {

    ...

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

    return fetchedResultsController;
}    

似乎是设置特定的实体名称。如果我有多个实体怎么办?我是否有2个NSFetchedResultsController实例,并且有2个方法可以返回正确的控制器,具体取决于我正在使用的实体?

由于

1 个答案:

答案 0 :(得分:6)

取决于。

例如,如果您有一个继承自Person的Person实体和Employee实体,那么您可以将一个NSFetchedResultsController用于将同时获取Persons和Employees的Person实体。但是,如果你有像Fruit实体和Person实体(并且Person不从Fruit继承,反之亦然),那么你不可能使用1个NSFetchedResultsController来获取Fruit和Persons。

您是否需要一个或多个NSFetchedResultsController取决于您的实体继承层次结构。