我有一个UITableView设置为NSFetchedResultsControllerDelegate . 我有一个后台线程获取数据(在一个单独的managedObjectContext中) . 两个上下文共享同一个商店协调员 . 从背景上下文中删除对象时(保存后),我收到以下错误:

在调用-controllerDidChangeContent:期间,从NSFetchedResultsController的委托中捕获到异常 . * - [NSMutableArray removeObjectAtIndex:]:索引0超出带有userInfo(null)的空数组的边界

我在后台线程上添加了一个观察者,如下所示:

[[NSNotificationCenter defaultCenter] addObserver:self 
     selector:@selector(didsave:) 
     name:NSManagedObjectContextDidSaveNotification 
     object:[self managedObjectContext]];

和我的didsave:实现如下:

-(void)didsave:(NSNotification *)nofication {

    MyAppDelegate *myApp = (MyAppDelegate*)[[UIApplication sharedApplication] delegate];
    NSManagedObjectContext *mainContext = [myApp managedObjectContext]; 

    [mainContext performSelectorOnMainThread:@selector(mergeChangesFromContextDidSaveNotification:) withObject:nofication waitUntilDone:YES]; }

在didChangeContent的UITableView控制器中:

case NSFetchedResultsChangeDelete:
        [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
        break;

我不能混合fetchControllerDelegate和另一个背景MOcontext,就像我想做的那样?