MagicalRecordについてRaywendrlichのチュートリアルを読んで勉強。
その後、自分でアプリを作りつつ、学んだ。
データをコミット?するときにチュートリアルで下記のようにしていた。
- (void)saveContext {
[[NSManagedObjectContext defaultContext] saveToPersistentStoreWithCompletion:^(BOOL success, NSError *error) {
if (success) {
NSLog(@"You successfully saved your context.");
} else if (error) {
NSLog(@"Error saving context: %@", error.description);
}
}];
}
非同期でWebAPIからデータ取得し、CoreDataに登録するということをやっていたら、下記のメッセージが出て、登録されない。
magicalrecord NO CHANGES IN ** BACKGROUND SAVING (ROOT) ** CONTEXT - NOT SAVING
試行錯誤した結果、
・同期処理で登録する
・saveToPersistentStoreWithCompletionではなく、saveOnlySelfWithCompletionを使ってコミットしたら登録できた。
MagicalRecordに関するドキュメントを読めば、ちゃんと書いてあるかもしれない。
今はMagicalRecordについて、ざっくりわかっていればいいので、同じことで失敗し時間を無駄にしないようにメモしておき、これで良しとしておく。