0

App Storeバージョンから現在の開発バージョンに2つの属性を交換するにはどうすればよいですか?問題は、データモデルを変更していないため、データモデルの移行がないことです。新しいデータモデルバージョンを(前回のバージョンから変更せずに)追加して、createDestinationInstancesForSourceInstanceでこの属性交換を行うマッピングモデルとカスタムエンティティ移行ポリシーを作成してみました。移行が呼び出されないため、機能しません。いくつかのテストの後、2番目のデータモデルが異なる場合にのみ呼び出されますが、等しくはありません。これが私が望むものです。何かアイデアや提案はありますか?私が持っている唯一のアイデアは、移行プロセスの起動を強制する別のデータモデルを作成するために、ダミー属性などを作成することです。どうもありがとう。リカルド。

4

1 に答える 1

0

データモデルを変更しない場合、移行機能は必要なものではありません。大砲でスズメを撃つようなものです。

属性が更新されているかどうかを確認するには、ユーザー設定フラグを保持するだけです。または、フェッチで確認することもできます。

次に、属性の更新を「手動で」実行します。おそらくでapplicationFinishedLaunching

if (needsUpdate) {
   // fetch the concerned entities
   // iterate through fetchedObjects and change the concerned attributes
}
[self.managedObjectContext save:&error]; 

NSManagedObjectContext安全を期すために、 sを使用して別のスレッドでこれを行うことができますperformBlock:

于 2013-01-23T11:33:14.433 に答える