Я продолжаю получать сбои из-за команды 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, и это не помогает.
Здесь есть идеи по Приветствуется, где начать поиск решения!
Похоже, вы выпускаете UIViewController
и не освобождаете связанный с ним NSFetchedResultsController
. NSFetchedResultsController
пытается уведомить своего делегата (скорее всего, ваш UIViewController
) о сохранении при выходе.