0

ABC.xcdatamodel を使用してコア データ ストアを開発しました。アプリのバージョン 1 を配布しました。

属性名に簡単な変更を加える必要があったため、新しいバージョンの ABC 2.vcdatamodel を作成しました。アプリのバージョン 2 を配布しました。問題なく動作しました。移行は完璧でした。

次に、いくつかの簡単な変更 (1 つの属性の追加) を行う必要があったため、ABC 2 に基づいて別の新しいバージョンを作成しました。ABC 3.xcデータモデル。バージョン 2 からの更新時に自動移行が失敗します。

ただし、バージョン 1 のビルド (ABC.xcdatamodel を使用) からアップグレードしようとすると、すべてうまくいきます。

明らかな何かが欠けていますか?アイデア?

4

1 に答える 1

0

1つのアイデア-バージョン2のデータモデルを誤って変更して、変更前に作成されたバージョン2のストアと一致しなくなった可能性があります。これで、「実際の」バージョン2ストアを持つインスタンスが読み込まれると、一致するデータモデルが見つからないため、2から3に変換できません。バージョンで作業する前に、バージョン2モデルをgit/svnにチェックインしましたか。 3?変更されたものとして表示されますか?

「変更された」とは、必ずしもプロパティを追加することを意味するわけではなく、CoreDataがバージョンを定義するために使用するハッシュ値を変更する小さなことを意味するだけであることに注意してください。

于 2013-02-28T01:02:02.507 に答える