質問: バージョンアップ時に全データが消える(もしくは内部に保存されているが見えなくなる)という とんでもない失態を犯してしまいました。 原因も分かりません。 バージョンアップでもデータモデルはいじっておりません。 現在、自分が考えている原因の候補としては ・本に書いてあるままに- (NSPersistentStoreCoordinator *)persistentStoreCoordinator の最下部に、[[NSFileManager defaultManager]removeItemAtURL:storeURL error:nil]; と書いたままにしておいたから ・マイグレーション処理をしていなかったから の二つですが確証はありません。ググっても同じような例が見つかりませんでした。 基本的にAppDelegateはいじっておらず、候補1の処理以外は初期通りです。 ``` - (NSPersistentStoreCoordinator *)persistentStoreCoordinator { // 略 if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]) { [[NSFileManager defaultManager]removeItemAtURL:storeURL error:nil]; //追加 NSLog(@"Unresolved error %@, %@", error, [error userInfo]); abort(); } return persistentStoreCoordinator; } ``` 本当にユーザのみなさまに申し訳なくて、もしデータ復旧できるのであれば その手段を教えていただけると助かります。 データが戻らない場合でも、次回からそうならないような対処法を教えていただけると 助かります。
回答: やっと原因がわかりました。 ここに書いてありましたが、すべての原因はやはり [[NSFileManager defaultManager]removeItemAtURL:storeURL error:nil]; の一行だったようです。 これがdata.sqlite ファイルを削除しまうので、アップデート時にデータ引き継ぎに ならなかったようです。 みなさまご返答ありがとうございました。