コードを変更してリリースしました。現在、永続ストアコーディネーターを新しいモデルに更新している間、アプリは起動時にタイムアウトになります。移行がトランザクションであるかどうかを知りたいので、修正するために何をすべきかを考え出すことができます。移行は、タイムアウトする前に移行によってx%になります。
トランザクションの場合は、最初にアプリを起動してから移行する必要があります。トランザクションでない場合、ユーザーは部分的にのみ移行されるスキーマを使用することになります。
バックグラウンド
呼び出しに使用されるコード
persistentStoreCoordinator_ = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
予想どおり、データベースの新しいモデルが存在する場合は失敗します。以前は、ユーザーはを介してデータベースを更新するように求められていましたUIAlertView
。次に、次のステートメントが呼び出されます。
[persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:optionsDictionary error:&error]
initWithManagedObjectModel
失敗した場合は、コードの2行目を実行することにしました。このステートメントが`-(NSPersistentStoreCoordinator *)persistentStoreCoordinator'メソッド内で実行されることを除いて、それほど愚かではないため、アプリの起動時にタイムアウトになることがあります。
この段階ではどうしたらいいのかわかりません。データベースは新しいモデルに半分マッピングされますか、それとも以前のモデルを表しますか?