Xcode覚書 Core Data/マイグレーション

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ファイルを新しく作成するのを忘れずに。

Add a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください