-1

编辑:我试图找出的错误消息位于代码的右侧,列为注释!!!

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
    }           

}
4

2 回答 2

1

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

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

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

于 2012-10-16T20:16:13.180 回答
0

解决了!但是,这是从先前对这个问题的回答中自行删除的,所以我将功劳归功于那个不知名的人。如果将来有人遇到此错误,请单击 core data.xcdatamoldeld,然后单击菜单栏(桌面)上的 Editor 部分,然后单击 set NSManagedObject Subclass 并添加它们。它应该工作。

于 2012-10-19T23:52:45.340 回答