实体xxx是不是键值为重点顺应编码,“(空)”
-
12-09-2019 - |
题
我试图写一个核心数据实体一个简单的表格视图编辑器。不幸的是,我遇到了问题。
添加非常第一实体表中时,会出现错误。用于使向上模态对话框的方法如下:
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:]:该实体组是不关键值编码兼容的键“(空)”。
如果我填写造就对话框之前的“名称”字段中,我能够成功地添加第一个实体:
[newManagedObject的setValue:@ “新组” forKey:@ “名称”]; //这工作
我使用NSFetchedResultsController
到BTW管理表视图。
谢谢!
解决方案 2
Yarr ......对不起你们,它实际上是从其他地方抄匆忙我didChangeObject:atIndexPath:forChangeType:newIndexPath:
功能。显然这里抛出的异常可以得到遮蔽save:
方法的内部。
其他提示
在您的第一码块,代码的第三行似乎是断章取义。如果有什么东西有可能是导致不知道。
其次,让自己的NSManagedObject成的NSManagedObjectContext从实体名称的最简单的方法是使用[NSEntityDescription insertNewObjectForEntityName:inManagedObjectContext:]。选择
所以,我会做一些事情,如:
NSManagedObjectContext *context = [fetchedResultsController managedObjectContext];
NSManagedObject *newObject = [NSEntityDescription insertNewObjectForEntityName:@"Group" inManagedObjectContext:context];
您不会需要释放NEWOBJECT了,因为[NSEntityDescription insertNewObjectForEntityName:inManagedObjectContext:]选择将与0的保留计数返回一个对象此外,请确保您有NameEditController指定其managedObject财产作为保留<。 / p>
要解决实际问题,这听起来像你可能有“名”指定为您的数据模型所需的财产?显示在你的数据模型“名”的细节的屏幕截图会有所帮助。