1

アプリでいくつかの構造変更を行ったときに、いくつかのバージョンに戻ってカスタム Core Data 移行を行いました。(そのため、新しいモデル バージョンと、カスタム ポリシー クラスを使用したマッピング モデルを作成しました)。

さて、もう少し変更を加えたいと思います。そこで、別のモデル バージョンを作成しました。さて、この変更のために別のマッピング モデルを作成する必要があるかどうかわかりませんか? もしそうなら、コアデータはユーザーのバージョンに基づいて使用する適切なものを見つけ出しますか?

また、別のカスタム ポリシー クラスを作成する必要がありますか? または、新しいロジックを最初のポリシー クラスに追加することはできますか?

最後に、元のデータベースから現在のデータベースに直接移行するためのロジックを追加する必要がありますか? または、コア データは私のためにそれを把握し、最初に中央値バージョンに移行し、ユーザーが元のデータ構造でアプリ バージョンを読み込んだときに現在のバージョンに移行しますか?

ありがとう!

4

2 に答える 2

0

モデルの変更に応じて、「デフォルトの移行プロセス」を使用できます。を呼び出すときaddPersistentStoreWithType:configuration:URL:options:error:は、フラグを使用しますNSMigratePersistentStoresAutomaticallyOption

また、残念ながら、考えられる移行ごとに 1 つのマッピング モデルが必要になると確信しています。3 つのモデルがある場合は、1 から 3 および 2 から 3 を実装する必要があります。Core Data は、中間ステップを自動的に実行できるほどスマートではありません :(

于 2013-08-26T04:26:56.930 に答える
0

別のマッピング モデルを作成する必要があるかどうかの答えは... 場合によると思います。Apple のドキュメント (特に軽量移行に関するコメント) を参照してください: https://developer.apple.com/library/ios/documentation/cocoa/Conceptual/CoreDataVersioning/Articles/vmMigrationProcess.html#//apple_ref/doc/uid/TP40004399- CH6-SW1

于 2013-08-26T04:27:03.290 に答える