Сбои при сохранении managedObjectContext с 'NSInvalidArgumentException', но только спорадически

Я продолжаю получать сбои из-за команды save: в managedObjectContext. Он даже не выполняет инструкцию NSLog, поэтому я не вижу сообщения о неразрешенной ошибке, поэтому я не могу понять, в чем может быть проблема. Это случается не каждый раз, а лишь эпизодически.

Вот код (который в основном хочет увеличить счетчик):

 if ([[managedObject valueForKey:@"canSee"]boolValue]){
    int read = [[managedObject valueForKey:@"timesRead"] intValue] +1;
    [managedObject setValue:[NSNumber numberWithInt:read] forKey:@"timesRead"]; 


    NSError *error;
    if (![resultsController.managedObjectContext save:&error]) {  //<-- crashes on this line!
        NSLog(@"Unresolved Core Data Save error %@, %@", error, [error userInfo]);
        exit(-1);
    }

В окне консоли я получаю такие сообщения:

  2010-08-20 08:12:20.594 AppName[23501:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFSet controllerWillChangeContent:]: unrecognized selector sent to instance 0xe54f560'

или это:

  2010-08-20 08:12:20.594 AppName[23501:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFSet controllerWillChangeContent:]: unrecognized selector sent to instance 0xe54f560'

или даже такое:

  2010-08-19 23:09:59.337 AppName[761:307] Serious application error.  Exception was caught during Core Data change processing.  This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification.  -[UITableViewLabel controllerWillChangeContent:]: unrecognized selector sent to instance 0x7f0a860 with userInfo (null)
  2010-08-19 23:09:59.356 AppName[761:307] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewLabel controllerWillChangeContent:]: unrecognized selector sent to instance 0x7f0a860'

Затем он показывает вызов стек при первом вызове, за которым следует уведомление (завершение вызова после выброса экземпляра 'NSException', '[Переключение на процесс 23501]' и 'Программа получила сигнал: «SIGABRT».'

Я думаю, что в этой проблеме есть что-то для делать с CoreData, но я не уверен. Я очистил свою сборку и цели, и, похоже, это не помогает. Я пробовал заблокировать / разблокировать ManagedObjectContext, и это не помогает.

Здесь есть идеи по Приветствуется, где начать поиск решения!

7
задан frandogger 22 August 2010 в 00:00
поделиться

1 ответ

Похоже, вы выпускаете UIViewController и не освобождаете связанный с ним NSFetchedResultsController . NSFetchedResultsController пытается уведомить своего делегата (скорее всего, ваш UIViewController ) о сохранении при выходе.

16
ответ дан 6 December 2019 в 08:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: