サーバーサイドでは, スキーマの変更などはよくあります. テーブルの追加,カラムの追加削除, などなどです.
スキーマの変更コードをさらっと書いておしまい. というわけですが... iOSでももちろんそういったケースは考えられます.
Core Dataではどのようにするのでしょうか? English
今回取り扱うケース
- すでにリリース済み xcdatamodelがすでに存在する
- 新しいデータを追加(テーブルの追加にあたる)
How to?
新しいバージョンの .xcdatamodelを追加
まず, xcdatamodelはバージョンで管理していることを押さえましょう.XCodeでは, rootのxcdatamodelが表示されています. 追加すると, モデル一覧が出てきます
さて, バージョンを追加しましょう
rootのxcdatamodelをポイントします
次に, "New File" -> "Core Data" -> "Data Model" と選択します
新しい xcdatamodelを追加できます. ここで, 名前を決めて終了です.
名前ですが, モデルの番号かもしくはソフトウェアのバージョンをつけておくとわかりやすいです
新しいバージョンにスイッチ
次に先ほど作成したバージョンにファイルを切り替える操作をします.xcdatamodelは選択できます. つまり戻したりできます.
もういちど, rootのxcdatamodelをポイントします. File Inspector を観ましょう.
下の方に, "Model Version" というのがあります.
ここのドロップダウンで選択できます
新しいバージョンのファイルにデータを追加
先ほどの新しいファイルにデータを追加しますCustomHolidayというのを追加しました
基本的に, スキーマ変更のためのコードは,自動的にやってくれます. カラムの追加時, データ構造の変更時であれば, overrideして操作コードを書かないといけませんが
0 件のコメント:
コメントを投稿