【发布时间】:2013-04-19 07:17:55
【问题描述】:
我是第一次使用核心数据并尝试学习核心数据。
从具有两个属性的员工示例开始。 1.名称 2. 工资
现在我完成了从数据库加载数据所需的所有必要工作。 我得到了我之前保存的值。
但问题是我只能保存员工表的一个属性。第一次我只保存了员工的姓名。然后当我获得成功时,我尝试用薪水保存名称然后我得到 [NSManagedObject setSalary:]: unrecognized selector sent to instance 0x7472d80 exception.
这是我的代码。
- (IBAction)setBtnTouched:(id)sender {
Employee *newEmp = [NSEntityDescription
insertNewObjectForEntityForName:@"Employee"
inManagedObjectContext:context];
[newEmp setName:self.textFieldName.text];
[emp addObject:newEmp];
/* this is the code that i added after success in saving for employee name.*/
//[newEmp setSalary:self.textFieldSal.text];
//[emp addObject:newEmp];
*/
BOOL isSaved = [context save:nil];
NSLog(@"is saved %d",isSaved);
NSLog(@"emp :%@",emp);
}
我不明白我哪里出错了,因为两者都是同一个实体的属性。
请写信给这个帖子。
编辑:屏幕截图 问候, paggyyy123
【问题讨论】:
-
能否请您添加您的核心数据模型的屏幕截图。
-
请看编辑后的问题:是你问的吗?
-
如果属性的名称是“sal”(如屏幕截图所示),那么您应该调用
[newEmp setSal:...]而不是[newEmp setSalary:...]。 -
您的意思是属性名称和持有这些值的类的变量名称必须相同。因为我有带有变量“名称”和“薪水”的“员工”类。
-
@user968597:是的,它们必须相同。注意 Xcode 有一个菜单项“Editor -> Create NSManagedObject subclasses ...”来创建类文件Employee.h/Employee.m,这样更不容易出错!
标签: core-data nsmanagedobject nsmanagedobjectcontext