情况就是这样。我有 2 个模型:
- 运动(具有属性名称和关系球员)
- 玩家(具有属性名称和关系运动)
在 ViewController 中,我不想在按运动排序的 UITableView 中显示所有玩家。当玩家名称更改时,会调用 NSFetchedResultsControllerDelegate 回调。
但是当一项运动的名称被更新时,不会调用 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]);
}