CoreDataはデータに関して、以下の機能を持つ。
- 変更の伝播
- アンドゥ、リドゥ
- 値の検証、値の組み合わせの検証
- ビューへの自動反映
- ファイル化(永続化)
データの取り出し
受信要求(Fetch Request)を管理大賞オブジェクトコンテキストに発行し、データを取り出す。
// 受信要求の作成 NSFetchRequest* fr = [[NSFetchRequest alloc] init];
// エンティティ名を指定し、取り出すエンティティ(データ)を決める。 [fr setEntity:[NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext]];
// 検索条件を設定する。すべての要素を取り出すのであれば、下記2行は不要。 NSPredicate* cond = [NSPredicate predicateWithFormat:@"from contains 'example.com'"]; [fr setPredicate:cond];
// 受信の実行とその結果の取得。 NSError* err; NSArray* result = [managedObjectContext executeFetchRequest:fr error:&err];
用語
- エンティティ Entity
- あるものを表すデータ。関係データベースのエンティティと同義。
- 属性 Attribute
- エンティティを構成する要素データ。たとえば「従業員エンティティ」なるものがあれば「従業員番号」や「氏名」が属性となる。
- 関係 Relation
- エンティティとエンティティを結ぶ関係。「従業員エンティティ」同士には、「上司」や「部下」といった関係がある。
- プロパティ Property
- 属性や関係などエンティティの構成要素を意味する。そしてクラスのメンバであることも意味している。
- 受信済みプロパティ
- iTunesプレイリストのように、楽曲自体が消えてもプレイリストに影響が出ないプロパティのこと。受信済みってのはデータの一部を複製して持っているっていう意味か?
- 管理対象オブジェクトコンテキスト Managed Object Context
- データのファイル化、アンドゥ、リドゥをデータを管理するためのマネージャ。
- 永続オブジェクトストア Persistent Object Store
- 受信要求 Fetch Request
- 管理大賞オブジェクトコンテキストを通じて、生データを取り出す要求を出すこと。