2012-03-03 13 views
0

私はthisコアデータのチュートリアルに従っていますが、1つは私を混乱させます。のは、私は言ってみましょう:コアデータの保存を理解する

NSManagedObjectContext *context = [self managedObjectContext]; 
NSManagedObject *failedBankInfo = [NSEntityDescription 
    insertNewObjectForEntityForName:@"FailedBankInfo" 
    inManagedObjectContext:context]; 
[failedBankInfo setValue:@"Test Bank" forKey:@"name"]; 
[failedBankInfo setValue:@"Testville" forKey:@"city"]; 
[failedBankInfo setValue:@"Testland" forKey:@"state"]; 
NSManagedObject *failedBankDetails = [NSEntityDescription 
    insertNewObjectForEntityForName:@"FailedBankDetails" 
    inManagedObjectContext:context]; 

NSError *error; 
if (![context save:&error]) { 
    NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]); 
} 

私はCoreDataは、実際にデータを格納するため、それを管理するために意図されていないことを読んだ、とCoreDataのバッキングストアは、SQLiteのです。アプリセッションが終了したときに上記で追加したこのデータはどうなりますか?上記のようなコードを実行すると、データは自動的にいくつかのSQLiteファイルに保存されますか?または、私はそれを埋めるいくつかの特定のアクションに従わない限り、私はアプリを起動するたびに、コアデータが空ですか?

答えて

1

NSManagedObjectContextの​​メソッドは、保存されていない変更を永続ストアにコミットします。 (ところで、永続ストアタイプはsqliteでもかまいませんが、他の永続ストアタイプもあります)。このコード例では、変更内容は永続ストアに永続化されます。

コアデータはオブジェクト永続性フレームワークです。つまり、その意味ではデータを保存します。管理対象オブジェクトモデルにカプセル化されたオブジェクトグラフが維持されます。

+0

「永続」という言葉はコアデータではたくさんありますが、正確にはどういう意味なのか分かりません。 – Snowman

+2

それは再び取り戻すことができるように保存することです。 – FluffulousChimp

関連する問題