0

私が気付いたのは、アップデートを出荷するときに、モデルバージョンのスタック全体をそのままにしておく必要があるということです。誰かがデータが入力されたバージョン1.0を持っていて、その間にバージョンがなくてもすぐにバージョン5.0に更新した場合、どうなるかわかりません。したがって、移行では、その最初のデータモデルがどのようなものであったかも知る必要があります。あるいは、これはまったく機能しないかもしれません。わからない。

ただし、いくつかの変更を加えた後、最後のモデルが現在のバージョンである25のデータモデルがありました。ですから、私が推測するのは、永続ストアコーディネーターは、これらのバージョンを繰り返し処理し、段階的に違いを理解するために多くの作業を行うことになるということです。これはダメじゃない?回避策はありますか?

4

1 に答える 1

2

ユーザーがバージョン1からバージョン5に移行する場合、CoreDataは1回のパスでそれを試行します。

Core Dataには、「バージョン1」と「バージョン5」の概念はなく、ソースモデルと宛先モデルのみを理解します。ユーザーが「バージョン1」をロードすると、CoreDataはバンドル内のソースモデルを見つけます。Core Dataは、「現在の」モデルに基づいて宛先も決定します。そこから移行を試みます。

したがって、新しいバージョンを作成するときは、可能な移行をそれぞれテストして、それらが機能することを確認する必要があります。自動で機能しない場合は、その移行のマッピングモデルを配置します。

したがって、Core Dataは1回の移行しか実行しないため、パフォーマンスの問題はありません。

于 2010-06-14T16:43:31.140 に答える