2014年5月11日日曜日

Core Data テーブルの追加

iOSでCore Data利用時に, テーブル(スキーマ)を追加する方法です。
サーバーサイドでは, スキーマの変更などはよくあります. テーブルの追加,カラムの追加削除, などなどです.
スキーマの変更コードをさらっと書いておしまい. というわけですが... 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 件のコメント:

コメントを投稿