我有一個由NSFetchedResultsController支持的表視圖。更改的sectionNameKeyPath屬性值不反映在NSFetchedResultsController上
任何時候底層上下文中的對象發生更改時,NSFetchedResultsController都會自動在表視圖上反映新的屬性值。好極了。
我注意到的一個例外是,用於sectionNameKeyPath的屬性值的更新不會自動反映出來。
我在猜測用於sectionNameKeyPath的屬性值是NSFetchedResultsController的基礎,我需要執行提取&重新加載表視圖?
更新:繼承人用於配置碼的獲取請求
- (void)configureFetch {
CoreDataHelper *cdh = [(AppDelegate *)[[UIApplication sharedApplication] delegate] cdh];
NSFetchRequest *request =
[NSFetchRequest fetchRequestWithEntityName:@"Item"];
request.sortDescriptors =
[NSArray arrayWithObjects:
[NSSortDescriptor sortDescriptorWithKey:@"locationAtHome.storedIn"
ascending:YES],
[NSSortDescriptor sortDescriptorWithKey:@"name"
ascending:YES],
nil];
[request setFetchBatchSize:15];
self.frc =
[[NSFetchedResultsController alloc] initWithFetchRequest:request
managedObjectContext:cdh.context
sectionNameKeyPath:@"locationAtHome.storedIn"
cacheName:nil];
self.frc.delegate = self;
}
,並執行該代碼的取出:
- (void)performFetch {
if (self.frc) {
[self.frc.managedObjectContext performBlockAndWait:^{
NSError *error;
[self.frc performFetch:&error];
if (error) NSLog(@"%@ '%@' %@ (Reason: %@)",
self.class, NSStringFromSelector(_cmd),
error.localizedDescription, error.localizedFailureReason);
[self.tableView reloadData];
}];
}
}
你可以顯示你的代碼創建讀取結果控制器(與獲取請求,謂詞,排序描述符)? – 2013-03-03 10:50:23
更新了代碼 – Timbo 2013-03-03 11:15:32