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

编辑:我试图弄清楚的错误消息是在代码的右侧列出的评论!

Xcode一直试图build议替代品,并拒绝让我build立。 代码右侧的注释标签中列出了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 } } 

CoreData代码看起来不错,但是你使用NSManagedObject *newContacts两次,只是使用另一个variables名或者删除NSManagedObject *作为第二个对象。

另外,我会build议你让你的对象的类有直接访问variables,而不是[obj setValue:value forKey:@"key"];

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

解决了! 然而,这个问题是从以前的回答中自己去掉的,所以我把这个信用给那个不知名的人。 如果将来有人有这个错误,点击核心data.xcdatamoldeld,然后点击你的桌面上的菜单栏上的编辑器部分,然后单击设置NSManagedObject子类并添加它们。 它应该工作。