1

現時点AUserでは、sqlite3 アプリ データベースにオブジェクトが表示されません。

これは、ユーザーを作成するために必要なコードです。何か不足していますか?コードに警告/エラーはありません。

AUser *user = [NSEntityDescription insertNewObjectForEntityForName:@"AUser" inManagedObjectContext:_managedObjectContext];  // _managedObjectContext is declared elsewhere

user.name = username;  //username is some string declared elsewhere / name is an attribute of AUser
4

3 に答える 3

4

コンテキストで保存を実行する必要があります。

NSError* error = nil;
if(![context save:&error]) {        
    // something went wrong
    NSLog(@"Error saving context: %@\n%@", [error localizedDescription], [error userInfo]);
    abort();
}

保存を実行すると、コンテキスト内のデータが永続ストア コーディネーター (つまり、SQL ストア内) に保存されます。

PS @Gとの議論に基づいています。Shearer、本番環境でコンテキストの保存に失敗した場合、エラーを適切に処理できます。これはabort()、アプリをクラッシュさせる呼び出しを使用しないことを意味します。

NSError* error = nil;
if(![context save:&error]) {        
    // save failed, perform an action like alerting the user, etc.
} else {
    // save success
}
于 2013-03-06T20:40:57.320 に答える
3

オブジェクトを作成した後、save を呼び出す必要があります。例:

NSError *error;
if ([user.managedObjectContext save:&error]) {
    //Success!
} else {
    //Failure. Check error.
}
于 2013-03-06T20:40:31.493 に答える
1

あなたは電話する必要があります

NSError *error = nil;
[_managedObjectContext save:&error];
if(error != nil) NSLog(@"core data error: %@",[[error userInfo] description]);

オブジェクトがデータベースに永続化される前

于 2013-03-06T20:41:46.000 に答える