XcodeでMaster-Detailのテンプレートを使って、お勉強をしていたのだが、Detailに表示するデータを増やしたくて、xcdatamodeldを開いて、Attributionを増やした。
って、それだけで動かなくなった・・・
調べたら「マイグレーション」をしなければならない!ってなってて、「マイグレーション」ってなんやねん?ってなった。
よくわからないが、
・古いデータが最新のデータ構造と違うから動かへんねん
・せやから、古いデータ消しなはれ
・でもな、マイグレーションいうのがあって、項目の増減をどないかしてくれるらしいわ
・自動でマイグレーションを行わせたいんやったら、コーディネータ構築のoptionを変えとき!
まぁ、大阪弁で言うならこんな感じか・・・
(はしょりすぎだけど)
で、ソースは、
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
と、変数を設定しておいて、
[persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:url
options:options
error:&err]);
デフォルトでnillになっているoptionsパラメータ?を設定した変数に変更する。
(自分への覚書)
Entityを追加したり、Attributeを増減させたりした後、
Core DataのNSManagedObject Subclassファイルを新しく作成するのを忘れずに。