背景
- 2つの管理対象オブジェクトモデルを備えたCocoa非ドキュメントコアデータプロジェクト。
- モデル1は同じままです。モデル2が変更されたので、ストアを移行したいと思います。
- Xcodeで[デザイン]>[データモデル]>[モデルバージョンの追加]で新しいバージョンを作成しました。
- バージョン間の違いは、1対多に変更された単一の関係です。
- モデルに変更を加えて保存しました。
- 古いモデルをソースとして、新しいモデルを宛先として持つ新しいマッピングモデルを作成しました。
- すべてのマッピングモデルとデータモデルがコンパイルされ、すべてがアプリバンドルのリソースフォルダーにコピーされていることを確認しました。
- 永続ストアを追加するときのように、
NSMigratePersistentStoresAutomaticallyOption
キーを使用して辞書を渡すことにより、移行をオンにしました 。[NSNumber numberWithBool:YES]
- バンドル内のすべてのモデルをマージするのではなく、使用する2つのモデル(モデル1とモデル2の新しいバージョン)を指定し、を使用してそれらをマージしました。
modelByMergingModels:
問題
移行するために何をしても、次のエラーメッセージが表示されます。
「永続的なストアの移行に失敗しました。ソース管理対象オブジェクトモデルがありません。」
私が試したこと
- ビルドするたびにクリーンアップします。
- リソースに移行先のモデルのみを含めるか、コンパイルするか、またはその両方を行うさまざまな組み合わせを試しました。
- エラーメッセージは、移行用のソースモデルが見つからないことを示しているため、Resourcesフォルダーとコンパイルの両方にモデルのすべてのバージョンを入れてみました。
- データモデルの元のバージョンに戻すことで、本当に基本的なエラーが発生していないことを確認しました。アプリは正常に動作します。
- マッピングモデルとモデルの新しいバージョンを削除し、クリーンアップしてから、両方を再作成しました。
- 新しいモデルに別の変更を加えてみました-代わりにエンティティを削除します。
私は私の知恵の終わりにいます。
どこかで見たことのない大きな間違いを犯したと思わずにはいられません。何か案は?