CoreDataについて¶
Todo
全体的にもう少し詳しく書くべき
mogenerator でモデルクラスを作成¶
mogenerator はCoreData定義を書くの .xcdatamodel
ファイルから自動的にモデルクラスを作成するツールである。
Xcodeも
で類似の機能が存在するが、 mogeneratorを使い生成した方が、拡張性等が優れているためこちらを利用する。Todo
mogeneratorの親クラスを利用したサブクラスの作り方について
MagicalRecord のススメ¶
CoreDataをもっと使いやすく、ハマりどころを減らすために MagicalRecord ライブラリの使用を推奨。
少なくともCoreDataを扱う際にはManagerとなるクラスを経由するようにして利用しないと、 不必要にmanagedObjectContextが複数作成されてしまうことなどが発生してしまう可能性があるため、統一的な利用方法を定めておくべきである。
Entityにidentifier属性を作成する¶
Entityには任意の属性を作成できるが、どのEntityにも必ず identifier
属性を作成する。
また、そのidentifierにはUUIDを代入するようにしておく。
UUIDの代入を自動的に行えるようにするにはmogeneratorを利用し作成した拡張用のサブクラスで
-awakeFromInsert
をoverwriteし代入するようにしておくといい。
See also
- mogeneratorと識別子を使ったCoreDataのModelクラス作成パターン | Technology-Gym
- mogeneratorを使ったモデル作成について
CoreDataではObjectIDという識別子が振られているがこれは内部的に使われるもののため、 外部から一意に特定するためにidentifier属性を付けることで、検索時にUUIDを使い探索が簡単に行えるようになる。