-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コードは良さそうですが、 2回使用しています。別の変数名を使用するか、2番目のオブジェクトをNSManagedObject *newContacts削除 してください。NSManagedObject *

また、オブジェクトのクラスを作成して、変数に直接アクセスするのではなく、変数にアクセスできるようにすることをお勧めします[obj setValue:value forKey:@"key"];

そしてもちろん、エラー出力を確認すると便利です。

于 2012-10-16T20:16:13.180 に答える
0

解決しました!ただし、この質問に対する以前の回答で自分自身を削除したため、その未知の人にクレジットを与えています。将来このエラーが発生した場合は、core data.xcdatamoldeld をクリックしてから、(デスクトップの) メニュー バーの [エディター] セクションをクリックし、[NSManagedObject サブクラスの設定] をクリックして追加します。それでうまくいくはずです。

于 2012-10-19T23:52:45.340 に答える