6

我正在检查 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 个方法根据我使用的实体返回正确的控制器?

谢谢

4

1 回答 1

6

这取决于。

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

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

于 2010-02-21T20:29:08.950 回答