Я пытаюсь написать простой редактор табличного представления для объекта Core Data. К сожалению, у меня проблемы.Объект xxx не является ключом, совместимым с кодом для ключа «(null)»
Ошибка возникает при добавлении самой первой сущности в таблицу. Процесс воспитания модальный диалог выглядит следующим образом:
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
, я это после того, как Done кнопка нажата:
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];
очень первый раз, когда я создать объект (если список пуст) Я получаю это:
Исключение было обнаружено во время обработки изменений Core Data: [valueForUndefinedKey:]: группа объектов не является ключевым значением, совместимым с кодировкой для ключа «(null)».
Если я заполнить поле «имя» до вызова диалога, я могу добавить первый объект успешно:
[newManagedObject SetValue: @ «Новая группа» forKey: @ «имя»]; // это работает
Я использую NSFetchedResultsController
для управления табличным представлением BTW.
Спасибо!
Что делает [error userInfo]? – TechZen
TechZen, это выход на консоли: UserInfo { NSTargetObjectUserInfoKey = <Группа: 0x46b5d00> (сущность: группы; ID: 0x46db950 <х-CoreData: /// Группа/t2AB024C0-88DA-4071-95A2-37E3E02494AF2 >; данные: { членов = ( ); name = dd; }); NSUnknownUserInfoKey =; } Сущность имеет только два атрибута, имя (строка) и элементы (отношение «один ко многим») –
sehugg