Fork me on GitHub

CoreDataについて

Todo

全体的にもう少し詳しく書くべき

mogenerator でモデルクラスを作成

mogenerator はCoreData定義を書くの .xcdatamodel ファイルから自動的にモデルクラスを作成するツールである。

Xcodeも Editor ‣ Create NSManagedObject SubClass で類似の機能が存在するが、 mogeneratorを使い生成した方が、拡張性等が優れているためこちらを利用する。

Todo

mogeneratorの親クラスを利用したサブクラスの作り方について

MagicalRecord のススメ

CoreDataをもっと使いやすく、ハマりどころを減らすために MagicalRecord ライブラリの使用を推奨。

少なくともCoreDataを扱う際にはManagerとなるクラスを経由するようにして利用しないと、 不必要にmanagedObjectContextが複数作成されてしまうことなどが発生してしまう可能性があるため、統一的な利用方法を定めておくべきである。

Entityにidentifier属性を作成する

Entityには任意の属性を作成できるが、どのEntityにも必ず identifier 属性を作成する。 また、そのidentifierにはUUIDを代入するようにしておく。

UUIDの代入を自動的に行えるようにするにはmogeneratorを利用し作成した拡張用のサブクラスで -awakeFromInsert をoverwriteし代入するようにしておくといい。

CoreDataではObjectIDという識別子が振られているがこれは内部的に使われるもののため、 外部から一意に特定するためにidentifier属性を付けることで、検索時にUUIDを使い探索が簡単に行えるようになる。