CoreDataメモ - その1
CoreDataのメモ(まだまだ理解できておらず現時点の勝手な理解なので間違っていたらすみません)
参考にさせていただいサイトです。
[Objective-C] CoreDataを使う - Qiita
サルでもわかる Core Data 入門【概念編】 - A Day In The Life
エンティティ:
右にある図がエンティティです。
NSManagedObject:
- モデルクラス
- Core Data で永続化するオブジェクトは必ずこのクラスのオブジェクトかこのクラスのサブクラスのオブジェクトでなければいけない、とのこと。
- エンティティで作成したデータと対応するクラスを関連付けることでコード上からデータに対する操作が可能になる。
エンティティとNSManagedObject の関連付けされてるのがここでわかる。
NSManagedObjectContext:
- 処理の実行
- 検索条件やデータに対する操作リクエストは、NSFetchRequest が担っており、このリクエストを元に実際にデータの検索、挿入更新削除や Undo Redo 処理の実行を行う
NSFetchRequest:
- 条件の管理
- データに対する検索条件などのリクエスト情報を管理する。このリクエスト情報をNSManagedObjectContext が実行することで処理が行われる。
NSFetchRequest でリクエスト情報を生成し、NSManagedObjectContext executeFetchRequest で実際にリクエストを投げる例はこんな感じ。
// 格納したデータのフェッチ NSFetchRequest *request = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext]; [request setEntity:entity]; NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"creationDate" ascending:NO]; NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; [request setSortDescriptors:sortDescriptors]; NSError *error = nil; NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
その他にもCoreDataを利用する設定でXcodeでプロジェクトを作ると、色々なクラスが自動生成されています。 それらについてはおいおい勉強します。。
とりあえずCoreDataを手始めに使ってみるのであれば、上記の4つを触ればよいようです。
今CoreDataのチュートリアルをObjective-C版でやったので、今度Swift版も作ってみます。