Я пытаюсь написать простой редактор табличного представления для сущности Core Data. К сожалению, у меня проблемы.
Ошибка возникает при добавлении самого первого объекта в таблицу. Процесс вызова модального диалога выглядит следующим образом:
NSManagedObjectContext *context = [fetchedResultsController managedObjectContext];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Group" inManagedObjectContext:context];
insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
NSManagedObject *newManagedObject = [[NSManagedObject alloc] initWithEntity:entity insertIntoManagedObjectContext:context];
NameEditController *dialog = [[NameEditController alloc] init];
dialog.managedObject = newManagedObject;
[newManagedObject release];
UINavigationController *navCtrlr = [[UINavigationController alloc] initWithRootViewController:dialog];
navCtrlr.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[[self navigationController] presentModalViewController: navCtrlr animated:YES];
[navCtrlr release];
Внутри NameEditController
, у меня после нажатия кнопки Готово есть:
NSString* name = self.nameLabel.text;
[self.managedObject setValue:name forKey:@"name"];
NSError *error = nil;
if (![managedObject.managedObjectContext save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
}
UIViewController *ctrl = [self parentViewController];
[ctrl dismissModalViewControllerAnimated:YES];
В первый раз, когда я создаю объект (когда список пуст), я получаю это:
Исключение было обнаружено при обработке изменения базовых данных: [valueForUndefinedKey:]: группа объектов не соответствует значению ключа, соответствующему кодированию для ключа "(null)"
Если я заполняю поле 'name' до вызова диалогового окна, я могу успешно добавить первую сущность:
[newManagedObject setValue: @ "Новая группа" forKey: @ "name"]; // это работает
Я использую NSFetchedResultsController
для управления представлением таблицы.
Спасибо!