まず、ソースモデルと宛先モデルの間にマッピングモデルを作成します。そこから、この分割を処理するマッピングモデル内のオブジェクトを選択します。マッピングモデルエディタの右側に、であるクラスに名前を付けることができる場所が表示されますNSEntityMigrationPolicy
。ここにカスタムマッピングポリシークラスを追加することで、標準コードの代わりにコードを使用するように移行に指示できます。
そこから、クラスを作成し、サブクラスにしNSEntityMigrationPolicy
ます。そのクラス内でメソッドをオーバーライドします-createDestinationInstancesForSourceInstance: entityMapping: manager: error:
。このメソッドはオブジェクトごとに1回呼び出されます。宛先オブジェクトを作成し、すべての属性をソースから宛先にコピーするのはユーザーの責任です。そのコピーの一部として、適切と思われるロジックによって名前を名と姓に分割できます。そのメソッドの最後に、が新しく作成された宛先オブジェクトを認識し、残りの移行が正しく機能する-associateSourceInstance: withDestinationInstance: forEntityMapping:
ように、必ず呼び出してください。NSMigrationManager
注:リレーションシップ関連のメソッドもカスタムコードを作成する必要がない限り、それらのメソッドをオーバーライドする必要はありません。
それがすべてです。