プロジェクトで Core Data を使用しており、ユーザーが入力したフォームを Core Data DB に保存する必要があります。ユーザーがアプリを再起動すると、保存されたフォームのリストが TableView に表示されます。ただし、Core Data が変更をコミットする前にユーザーがアプリを終了すると、フォームは保存されません。データがコミットされた瞬間を捉える方法はありますか?
これは私がフォームを保存する方法です:
if (![document.managedObjectContext save: &error]) {
NSLog(@"DB saving error!");
}
else {
NSLog(@"DB save OK!");
//show alertView
}
を使用して Core Data コミットの瞬間を追跡しようとしました-com.apple.CoreData.SQLDebug 1
。ログは、約 15 秒後にオブジェクトの保存を開始したことを示しています。
// This is how my log output looks like
2012-08-03 14:50:43.587 iPadAF_new[4506:707] DB save OK!
2012-08-03 14:50:58.628 iPadAF_new[4506:2597] CoreData: sql: COMMIT
では、コミット後に通知などを受け取るにはどうすればよいのでしょうか。ユーザーは保存するまでアプリを終了できません。