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