Core Data 入門
Core Data 入門
今時 Realm とかあるしもう触らなくて済むかと思っていた Core Data。
やんごとなき理由により触らなければならなくなること、あると思います。
設計思想
- そもそも DB にする必要あるの?
- モデルレイヤを適切に切出せている?
みたいなの、あると思います。
この辺り今回は触れないので、こういう検討は済んだ上で、いざ Core Data を使い始める、ところに焦点を絞る。
クラス分け
モデルオブジェクト
データ保持の最小単位として定義する。
ロジックを一切含まないようにし、情報保持に特化させる。
インデックスの付与や、内部の各種変数のアクセッサの提供など、ただただ情報を保持することに特化させる。
モデルマネージャ
モデルオブジェクトデータの読み書きを誰が行うか。読み出したデータを誰が保持するか。各コントローラで読み書きの処理を別々に実装する? 読み出したデータをお互いに渡し合う?
色々な問題があるため、モデルオブジェクトを一元管理するクラスを作成する。
シングルトンのデメリット? 今は忘れることにする。
実装
モデリングツール
Xcode の New File... -> iOS -> Core Data とたどって、Data Model を追加する。
エンティティの追加
モデルオブジェクトはエンティティとして定義していく。
ほぼ GUI からの操作のみで完結する。
- インデックスを定義する
- 標準の objectID は Core Data の内部で使われるものであり、常に一意とは限らない
- 一意に求められる ID をつけておくと何かと便利
関連の追加
エンティティ間の関連を決定する。
1対1、1対多 など、適切なものを設定する。 逆関連についても、必要に応じて適切に設定する。
まずはベースまで。