我正在尝试为核心数据实体编写一个简单的表视图编辑器。不幸的是,我遇到了问题。
将第一个实体添加到表时发生错误。调出模态对话框的过程如下:
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)”的键值编码。
如果我在弹出对话框之前填写“名称”字段,则可以成功添加第一个实体:
[newManagedObject setValue:@"New Group" forKey:@"name"]; // 这行得通
我NSFetchedResultsController
用来管理表视图顺便说一句。
谢谢!