Open3
CoreData(個人用の雑メモ)
CoreData
データの永続化を提供するフレームワークのこと。
CoreDataを通じて保存したデータは、単一のiCloudアカウントの複数デバイス間でデータを自動的に同期します。
特徴
- ORマッパー:オブジェクトをDBにマッピングする処理を抽象化し、データベースを直接管理することなくSwift/Objcという言語でデータを管理できる。
- Undo/Redo:変更を追跡し、簡単にロールバックできる
- Background data Tasks:JSON解析などUIスレッドをブロックする可能性のあるデータタスクをバックグラウンドで実行します。その結果をキャッシュまたは保存し、サーバーとのやり取りを少なくできます。
CoreData Stack
アプリのモデルレイヤーを共同でサポートするクラスのことをCoreData Stackと呼びます。
CoreData Stackの関係は以下図のようになっています。
- NSManagedObjectModel:Entityのようにデータ構造(プロパティやリレーションシップを含む)を定義する
- NSManagedObjectContext:インスタンスへの変更を追跡する
- NSPersistentStoreCoordinator :インスタンスの保存や取得
- NSPersistentContainer:NSManagedObjectModel、NSManagedObjectContext、NSPersistentStoreCoordinator を一度にセットアップする
NSPersistentStore
ストアの種類は4つある
- xml
- binary
- inMemory
- sqlite