CoreData错误,用于简单地添加到数据库

时间:2012-10-16 20:13:19

标签: ios xcode core-data input

编辑:我想弄清楚的错误信息在代码的右侧列为注释!!!

Xcode一直试图建议替代方案并拒绝让我构建。 3列在代码右侧的注释标签中。他们的意思是什么?我很擅长使用核心数据,并且真的希望看到我做错了什么,只是使用用户名作为例子(我知道我不应该这样做)!

- (IBAction)saveData:(id)sender {
    NSManagedObjectContext *cxt = [self managedObjectContext];       //instance method managedObjectContext not found
    NSManagedObject *newContacts = [NSEntityDescription insertNewObjectForEntityForName:@"Contacts" inManagedObjectContext:cxt];
    [newContacts setValue:self.username.text forKey:@"username"];          //insert NSManagedObjectModel instead of NSManagedObject...claims that it is undeclared?
    username.text = @"";

    NSManagedObject *newContacts = [NSEntityDescription insertNewObjectForEntityForName:@"Contacts" inManagedObjectContext:cxt];     //trying to replace NSEntityDescription with KSecAttrDescription...claims that it is undeclared      
    [newContacts setValue:self.password.text forKey:@"password"];
    password.text = @"";

    NSError *err;
    if (![cxt save:&err]) {
        NSLog(@"An error has occured: %@", [err localizedDescription]);      //Instance Method -save not found
    }           

}

2 个答案:

答案 0 :(得分:1)

CoreData代码看起来不错,但您使用NSManagedObject *newContacts两次,只需使用另一个变量名称或删除第二个对象的NSManagedObject *

另外,我建议您为对象创建类,以便直接访问变量,而不是[obj setValue:value forKey:@"key"];

当然,看到错误输出会很高兴。

答案 1 :(得分:0)

解决了!然而,从这个问题的先前答案中删除了他们自己,所以我给了那个不知名的人。如果将来有任何人遇到此错误,请单击您的核心数据.xcdatamoldeld,然后单击菜单栏(桌面)上的编辑器部分,然后单击设置NSManagedObject子类并添加它们。它应该工作。