Apple Developer Connection
Advanced Search
Member Login Log In | Not a Member? Contact ADC

< Previous PageNext Page >

Core Data

Core Dataは、オブジェクトグラフを管理するためのインフラストラクチャを提供するCocoaフレームワークであり、各種のファイル形式による永続的な格納のサポートなどが含まれます。オブジェクトグラフの管理には、アンドゥとリドゥ、検証、オブジェクト間の関係の整合性確保といった機能が含まれます。オブジェクトの永続性とは、Core Dataによってモデルオブジェクトが永続ストアに格納され、必要なときに取得されることを意味します。Core Dataアプリケーションの永続ストア(オブジェクトデータがアーカイブされる最終的な形式)の範囲は、XMLファイルからSQLデータベースにまで及びます。Core Dataはリレーショナルデータベースのフロントエンドとして機能するアプリケーションには理想的ですが、どのようなCocoaアプリケーションでもその機能を活用することができます。

Core Dataの中心的な概念となっているのが、管理対象オブジェクトです。管理対象オブジェクトは、単にCore Dataによって管理されるモデルオブジェクトですが、必ずNSManagedObjectクラスまたはそのサブクラスのインスタンスでなければなりません。Core Dataアプリケーションの管理対象オブジェクトを記述するには、管理対象オブジェクトモデルと呼ばれるスキーマを使用します(Xcodeアプリケーションにはこれらのスキーマの作成を支援するデータモデリングツールが付属しています)。管理対象オブジェクトモデルには、アプリケーションの管理対象オブジェクト(エンティティとも呼ばれます)に関する記述が格納されます。それぞれ記述は、エンティティの属性、ほかのエンティティとの関係、およびメタデータ(エンティティの名前やエンティティを表すクラスなど)を指定します。

実行中のCore Dataアプリケーションでは、管理対象オブジェクトコンテキストと呼ばれるオブジェクトが、管理対象オブジェクトのオブジェクトグラフの処理を行います。グラフ内の管理対象オブジェクトはすべて、管理対象オブジェクトコンテキストに登録する必要があります。このコンテキストを利用して、アプリケーションはグラフを対象としたオブジェクトの追加と削除が行えます。また、管理対象オブジェクトコンテキストはそれらのオブジェクトに加えられた変更を追跡します。その結果として、アンドゥやリドゥのサポートを提供できます。管理対象オブジェクトに加えた変更を保存する準備を整えた時点で、管理対象オブジェクトコンテキストによって、それらのオブジェクトが有効な状態にあることが保証されます。Core Dataアプリケーションでは、自身の外部データストアからデータを取得する必要が生じた場合に、フェッチ要求(一連の条件を指定するオブジェクト)を管理対象オブジェクトコンテキストに送信します。すると、オブジェクトが自動的に登録された後に、要求に一致するオブジェクトがストアからコンテキストを通じて返されます。

管理対象オブジェクトコンテキストはまた、Core Dataオブジェクトの基礎となる、永続性スタックと呼ばれるコレクションへのゲートウェイとしても機能します。永続性スタックは、アプリケーション内のオブジェクトと外部データストア内のオブジェクトとの間を仲介します。スタックは、永続ストアと永続ストアコーディネータという、2つの異なる種類のオブジェクトで構成されます。.永続ストアはスタックの一番下にあり、外部ストア(XMLファイルなど)内のデータと、管理対象オブジェクトコンテキスト内の対応するオブジェクトとを対応付けます。ただし、永続ストアは管理対象オブジェクトコンテキストと直接やり取りすることはありません。スタック内の永続ストアの上にあるのが永続ストアコーディネータです。永続ストアコーディネータは、1つ以上の管理対象オブジェクトコンテキストに対してファサードを提示します。そうすることで、配下に複数の永続ストアがあっても、それらは集約された単一のストアとして認識されます。Figure 7-2は、Core Dataアーキテクチャにおけるオブジェクト間の関係を示します。


Figure 7-2  管理対象オブジェクトコンテキストと永続性スタック

Figure 7-2 管理対象オブジェクトコンテキストと永続性スタック

Core DataにはNSPersistentDocumentクラスが組み込まれています。このクラスはNSDocumentのサブクラスで、Core Dataとドキュメントアーキテクチャの統合を支援します。この永続ドキュメントオブジェクトは、自身の永続性スタックと管理対象オブジェクトコンテキストを作成し、ドキュメントを外部データストアに対応付けます。NSPersistentDocumentオブジェクトは、ドキュメントデータの読み取りと書き込みを行うNSDocumentメソッド群のデフォルト実装を提供します。



< Previous PageNext Page >


Last updated: 2006-05-23




Did this document help you?
Yes: Tell us what works for you.

It’s good, but: Report typos, inaccuracies, and so forth.

It wasn’t helpful: Tell us what would have helped.
Get information on Apple products.
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Copyright © 2007 Apple Inc.
All rights reserved. | Terms of use | Privacy Notice