1
這是實例。我有2種型號:從NSFetchedResultsController檢測sectionNameKeyPath上的更新
- 體育(與屬性名稱和關係玩家)
- 播放器(帶屬性名稱和關係運動)
在一個視圖控制器,我wan't顯示所有玩家在由體育命令的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]);
}