データ モデルを古いものから新しいものに移行しようとすると、ちょっとした問題に遭遇しました。私はウェブを検索して、この問題の解決策を数週間探していましたが、まだ運がありません.
これは私のデータモデルが以前のように見えたものです:
A <<--->> B
<<--->> C
以降:
A <<---> B
<<---> C
ご覧のとおり、エンティティ A から B および A から C の間の関係は、多対多の関係から多対 1 の関係に変わりました。問題は、移行を機能させることです。軽量の移行を使用して試してみると、コンソールに次のように表示されます (他の多くのものと一緒に):
対多から対 1 の関係にマップできません。
これは、ドキュメントを検討するときに理にかなっています。そのため、関係の変更を処理するには、マッピング モデルとカスタム移行ポリシーを使用する必要があると推測しました。自動生成されたマッピング モデルを使用すると、「未解決のエラー」が発生し、ログの途中で、移行用のマッピング モデルが見つからないことが示されます。モデルへの些細な変更 (つまり、何かの名前の変更) が機能する (実際にマッピング モデルを見つけることができる) ため、これは一般的なエラーの説明のようなものだと思います。私の質問は、ストアを正しく移行するためのマッピング モデルを取得するにはどうすればよいですか? そして、これを達成するために私が何をする必要があるかについて説明してもらえますか? この方法を使用する必要があると思います:
- (BOOL)createRelationshipsForDestinationInstance:(NSManagedObject *)dInstance entityMapping:(NSEntityMapping *)mapping manager:(NSMigrationManager *)manager error:(NSError *__autoreleasing *)error
ただし、このメソッドを機能させるには、このメソッドでどのコードが必要ですか (単に一般化できる場合)?
ちなみに、私は Xcode 4.3.2 を使用しており、このアプリケーションの最小 iOS 要件は iOS 5 です。
よろしくお願いします。