多个NSFetchedResultControllers用于不同的实体?

ind*_*gie 6 iphone cocoa-touch core-data objective-c nsfetchedresultscontroller

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

- (NSFetchedResultsController *)fetchedResultsController {

    ...

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

    return fetchedResultsController;
}    
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Gia*_*iao 6

这取决于.

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

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