

バージョンアップ時に全データが消える(もしくは内部に保存されているが見えなくなる)という  
とんでもない失態を犯してしまいました。

原因も分かりません。  
バージョンアップでもデータモデルはいじっておりません。

現在、自分が考えている原因の候補としては  
・本に書いてあるままに- (NSPersistentStoreCoordinator *)persistentStoreCoordinator  
の最下部に、[[NSFileManager defaultManager]removeItemAtURL:storeURL error:nil];  
と書いたままにしておいたから  
・マイグレーション処理をしていなかったから

の二つですが確証はありません。ググっても同じような例が見つかりませんでした。  
基本的にAppDelegateはいじっておらず、候補1の処理以外は初期通りです。

[code]

    - (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;
    }
    
[/code]

本当にユーザのみなさまに申し訳なくて、もしデータ復旧できるのであれば  
その手段を教えていただけると助かります。

データが戻らない場合でも、次回からそうならないような対処法を教えていただけると  
助かります。


CC BY-SA 3.0
2015-04-12T07:54:42.810
9074
2015-05-12T18:11:41.237
2015-04-12T12:30:31.557
8000
8320
question
ios
CoreDataを使ったアプリ　バージョンアップで以前のデータが消えてしまいました


やっと原因がわかりました。

[ここ](http://d.hatena.ne.jp/paraches/20110802/1312299545)に書いてありましたが、すべての原因はやはり  
[[NSFileManager defaultManager]removeItemAtURL:storeURL error:nil];  
の一行だったようです。  
これがdata.sqlite ファイルを削除しまうので、アップデート時にデータ引き継ぎに  
ならなかったようです。

みなさまご返答ありがとうございました。


CC BY-SA 3.0
2015-04-12T18:06:01.793
9082
2015-04-12T18:06:01.793
8320
9074
answer