追記: 内容的にかなりエントリーレベルでした。ただ、入門としてはすごくわかりやすい!CoreData初心者で英語ができるなら読んで損はない記事だと思います。
世の中SwiftなのにいまさらCoreDataかいって感じもありますが、良い記事だったのでちょっと学んだことを書き出してみます。
「Core Dataは成熟したフレームワークですよね?でも使い方を誤るとフレームワークとの格闘になってしまいます」というところから始まります。僕もCoreDataは何度も使っているものの、独自の使い方になっているところもあると思うので読み始めてみました。あと、Core Data初心者が勘違いしやすいところを書いているようです。
ちょっときになったこと
- Core Dataはデータベースではない
- Core Dataはデータベースではなく、MVCのM、すなわちモデルということです。Object graphを管理するフレームワークです。
- Core Dataはデータベースではないけれど、
NSManagedObjectModel
はデータベースのschemaと同じように捉えることができる。 NSPersistentStoreCoordinator
はpersistent store とmanaged object contextの媒介者である。NSPersistentStoreCoordinator
はCore Data orchestraの指揮者である。NSManagedObjectContext
はNSManagedObject
の集合を管理するオブジェクトである。NSPersistentStoreCoordinator
はNSManagedObjectContext
を複数持つことができる。- managed object contextはmodel objectの作業台である。
参考