CoreData基本登場人物

CoreDataというのはMacの世界でのORマッパの模様。
iPhoneでは実際のDBはSQLite3が使用される。

【登場人物】
・NSManagedObjectContext: DBコネクション相当。AppDelegateでインスタンスを作成し、データベースを扱う必要があるクラス(ViewControllerとか)では、AppDelegateからひたすらNSManagedObjectContextのインスタンスを引き回す。
・NSFetchRequest: DBからデータを取得する際に使用する。要するにSELECTに相当。取得したエンティティは配列(NSArray)で取得される。
・NSFetchedResultController: DBからデータを取得する際に使用する。NSFetchRequestとの相違は、NSFetchRequestはエンティティを配列で返してそこで解放するのに対し、NSFetchedRequestControllerはずっと使い続けて、必要に応じて必要なエンティティをインデックス指定で取得する。TableViewとの連携を前提に作られており、一覧表示など、テーブルのデータをある程度継続的に表示するときに使うっぽい。
・NSManagedObject: エンティティ。NSFetchRequestやらNSFetchedResultControllerから取得される。通常、モデルクラスをNSManagedObjectから派生させて用意しておく。あと、Update、Insert、Delete相当の処理もこのクラスで行う。


NavigationController-basedでプロジェクトを作るときにCoreDataを使用するにチェックをつけておくと、以下のコードが自動的に作成される。

・AppDelegateでNSManagedObjectContextのインスタンスを作成する処理
・RootViewControllerにNSManagedObjectContextのインスタンスを引き渡す処理
・アプリケーション終了時に、未コミットの前データをコミットする処理。

あとはRootViewControllerでNSManagedObjectContextのインスタンスから自由にDBにアクセスしてね、というシステム。

このブログ記事について

このページは、イケダムが2011年1月30日 23:11に書いたブログ記事です。

ひとつ前のブログ記事は「Macでのバックスラッシュの入力」です。

次のブログ記事は「iphoneアプリに日本語のタイトルをつける」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 5.04