【问题标题】:Save multiple attributes to same core data entity将多个属性保存到同一个核心数据实体
【发布时间】: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


【解决方案1】:

确保您的 NSManagedObject 子类包含正确的属性名称访问器。

// Employee.m
@dynamic Salary

另外,请注意,您要将新员工添加到数组emp 中两次。一旦属性完成,这两个将是相同的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多