【发布时间】:2012-12-17 16:27:45
【问题描述】:
在多上下文核心数据方面苦苦挣扎,我很乐意提供任何帮助。
同步操作完成后,此块被调用:
[[SyncEngine sharedEngine]setFinishedSyncCompletionBlock:^{
//---setting FRC to nil did refresh tableview but it is kinda slow
// self.fetchedResultsController=nil;
[self loadRecordsFromCoreData];
[self.tableView reloadData];
}];
在这里我可以看到新的托管对象在上下文中。但是调用 [self.tableView reloadData];在此之后不会刷新我的 tableview,或者 (void)controllerDidChangeContent:(NSFetchedResultsController *)controller 不会触发。
- (void)loadRecordsFromCoreData {
NSLog(@"here loadRecordsFromCoreData");
[self.managedObjectContext.parentContext performBlock:^{
//---this is also a trial for resetting FRC
// [self.managedObjectContext reset];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Event"];
// Edit the sort key as appropriate.
fetchRequest.sortDescriptors = @[ [[NSSortDescriptor alloc] initWithKey:@"timeStamp" ascending:NO] ];
NSArray *objects = [self.managedObjectContext.parentContext executeFetchRequest:fetchRequest error:NULL];
NSArray *objectIDs = [objects valueForKey:@"objectID"];
[self.managedObjectContext performBlock:^{
NSArray *objects = [self.managedObjectContext objectsWithIDs:objectIDs];
// self.fetchedResultsController.managedObjectContext = self.managedObjectContext;
NSLog(@"objects: %lu", (unsigned long)objects.count);
}];
}];
【问题讨论】:
标签: ios core-data nsfetchedresultscontroller