5

xcdatamodeldCore Data を使用する既存のプロジェクトがあり、バンドル内に 3 つのバージョンがあります。これまでのところ、新しいパラメーターとエンティティをほとんど追加したため、軽量の移行のみを使用しましたが、既存のパラメーターを新しいエンティティに移動したいと考えています。mapping modelパラメータ間でデータを移行するには、これを行うためにa を作成する必要があることに気付きました。

モデルのバージョン 1 を使用する非常に古いバージョンのアプリを使用しているユーザーと、バージョン 2 および 3 を使用しているユーザーがいると思います。

質問:

  1. 既存のすべてのバージョンから新しいバージョンへのマッピング モデルを作成する必要がありますか、それとも最新バージョンからのみ作成する必要がありますか?
  2. の軽量移行オプションを変更または無効にする必要がありますNSPersistentStoreCoordinatorか? 現在、次のオプションを有効にしています。

    NSMigratePersistentStoresAutomaticallyOption
    NSInferMappingModelAutomaticallyOption

v1 から v2、v3 への移行には引き続き軽量の移行が必要になると思いますが、v3 から v4 への移行には新しいマッピング モデルが必要です。私は周りを見回しましたが、ほとんどのチュートリアルは2つのバージョンしかカバーしていないため、これがどのように起こるかについての情報を見つけることができません.

ありがとう

4

1 に答える 1

1
  1. ちょうど最新バージョンから。
  2. いいえ。

移行は順次行われます (これが、最初のバージョンからの移行が予想されない場合でも、すべてのモデル バージョンを存在させておく必要がある理由です。

NSMigratePersistentStoresAutomaticallyOption、マッピング モデルが存在しない場合にのみ自動移行を行います。

于 2012-12-05T16:00:27.987 に答える