我正在查看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个方法可以返回正确的控制器,具体取决于我正在使用的实体?
由于
答案 0 :(得分:6)
取决于。
例如,如果您有一个继承自Person的Person实体和Employee实体,那么您可以将一个NSFetchedResultsController用于将同时获取Persons和Employees的Person实体。但是,如果你有像Fruit实体和Person实体(并且Person不从Fruit继承,反之亦然),那么你不可能使用1个NSFetchedResultsController来获取Fruit和Persons。
您是否需要一个或多个NSFetchedResultsController取决于您的实体继承层次结构。