【问题标题】:how to refresh my fetchedresultcontroller after change from other contexts从其他上下文更改后如何刷新我的 fetchedresultcontroller
【发布时间】: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


    【解决方案1】:

    发生这种情况是因为在执行 loadRecordsFromCoreData 的块之前调用了重新加载表方法。只需进行一些更改,在self.managedObjectContext performBlock 块中的NSLog(@"objects: %lu", (unsigned long)objects.count); 之后调用[self.tableView reloadData];

    【讨论】:

    • 谢谢...解决了这个问题,但是 self.fetchedResultsController=nil;仍然需要。
    猜你喜欢
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多