Я проверяю шаблон Xcode по умолчанию для проекта iPhone Core Data. В методе, который возвращает выбранный контроллер результата, я вижу это:
- (NSFetchedResultsController *)fetchedResultsController {
...
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
...
return fetchedResultsController;
}
Это, кажется, определяет определенное имя объекта. Что, Если у меня есть несколько объектов? Я имел бы 2 экземпляра NSFetchedResultsController и имел бы 2 метода, которые возвращают корректный контроллер, в зависимости от которого объекта я использую?
Спасибо
Это зависит от ситуации.
Например, если у вас есть сущность Person и сущность Employee, которые наследуются от Person, то вы можете использовать один NSFetchedResultsController для сущности Person, который будет получать и Persons, и Employees. Однако, если у вас есть что-то вроде сущности Fruit и сущности Person (и Person не наследуется от Fruit и наоборот), то маловероятно, что вы сможете использовать 1 NSFetchedResultsController для получения Fruits и Persons.
Нужен ли вам 1 или более NSFetchedResultsController, зависит от вашей иерархии наследования сущностей.