У меня UITableView настроен как NSFetchedResultsControllerDelegate.У меня есть фоновый поток получения данных (в отдельном managedObjectContext).Оба контекста используют один и тот же координатор магазина.Когда объект удаляется из фонового контекста (после сохранения), я получаю следующую ошибку:
Исключение было получено от делегата NSFetchedResultsController во время вызова -controllerDidChangeContent :.* - [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]; }
В контроллере UITableView из didChangeContent:
case NSFetchedResultsChangeDelete:
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
break;
Невозможно смешать fetchControllerDelegate и другой фоновый MOcontextкак я пытаюсь сделать?