Обновление UITableView (NSFetchedResultsControllerDelegate) из фонового потока с использованием уведомлений - PullRequest
0 голосов
/ 13 октября 2011

У меня 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как я пытаюсь сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...