编辑:我想弄清楚的错误信息在代码的右侧列为注释!!!
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
}
}
答案 0 :(得分:1)
CoreData代码看起来不错,但您使用NSManagedObject *newContacts
两次,只需使用另一个变量名称或删除第二个对象的NSManagedObject *
。
另外,我建议您为对象创建类,以便直接访问变量,而不是[obj setValue:value forKey:@"key"];
当然,看到错误输出会很高兴。
答案 1 :(得分:0)
解决了!然而,从这个问题的先前答案中删除了他们自己,所以我给了那个不知名的人。如果将来有任何人遇到此错误,请单击您的核心数据.xcdatamoldeld,然后单击菜单栏(桌面)上的编辑器部分,然后单击设置NSManagedObject子类并添加它们。它应该工作。