Вот случай. У меня есть 2 модели:
- Спорт (с именем атрибута и родством игроков)
- Игрок (с именем атрибута и отношениемShip sport)
В ViewController я не хочу отображать всех игроков в UITableView, упорядоченном по видам спорта.
Когда имя игрока изменяется, вызываются обратные вызовы NSFetchedResultsControllerDelegate.
Но когда имя Sport обновляется, никакие обратные вызовы NSFetchedResultsControllerDelegate не вызываются.
Это нормальное поведение? Как я могу узнать обновления Sport.name (без создания другого NSFetchedResultsController)?
Спасибо и наилучшими пожеланиями.
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"sport.name != NULL"];
[fetchRequest setPredicate:predicate];
NSArray *sortDescriptors = [NSArray arrayWithObjects:
[NSSortDescriptor sortDescriptorWithKey:@"sport.name" ascending:YES],
[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES],
nil];
[fetchRequest setSortDescriptors:sortDescriptors];
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Player"
inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entityDescription];
fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:@"sport.name"
cacheName:nil];
[fetchRequest release];
fetchedResultsController.delegate = self;
NSError *error = nil;
if ([fetchedResultsController performFetch:&error] == NO) {
ALog(@"Fetch error: %@", [error localizedDescription]);
}