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

< Previous PageNext Page >

ドキュメントアーキテクチャ

多くのアプリケーションでは、ユーザがドキュメントを作成および編集できるようになっています。ドキュメントとは、同一のユーザインターフェイスを持つウインドウに個別に表示されたデータの独自の集合体です。ワードプロセッサ、写真画像エディタ、Webブラウザなどは、ドキュメントベースアプリケーションの例です。これらのアプリケーションには似通った機能があります。これらのアプリケーションでは、ユーザが新規ドキュメントを作成し、ファイルに保存し、後で開くことができます。また、ドキュメントベースアプリケーションは、メニュー項目の有効化、各ドキュメントの編集ステータスの監視、ドキュメントウインドウの管理、アプリケーション全体にかかわるイベント(たとえば、“終了”)への適切な対応などを行います。多くの場合、ドキュメントベースアプリケーションはドキュメントデータを内部的に異なる表現で扱うことができます。

Cocoaは、こうした機能をそなえたドキュメントベースアプリケーションの実装に必要な作業を軽減するアーキテクチャを、開発者に提供します。このアーキテクチャを構成する基本的なコンポーネントとして、Application Kitの3つのクラスであるNSDocumentNSDocumentController、およびNSWindowControllerがあります。ドキュメントベースのCocoaアプリケーションでは、これら3つのクラスのオブジェクトがそれぞれ異なる役割を担い、所有権と管理に基づいて一連の階層的な相互関係があります(Figure 7-1を参照)。


Figure 7-1  ドキュメントクラス間の所有権の関係

Figure 7-1 ドキュメントクラス間の所有権の関係

ドキュメントアーキテクチャをベースとするCocoaアプリケーションには、NSDocumentControllerオブジェクトが1つあります。このオブジェクトは1つ以上のNSDocumentオブジェクトを所有します。各NSDocumentオブジェクトはさらに、1つ以上のNSWindowControllerオブジェクトを作成し管理します。そして、それぞれのNSWindowControllerオブジェクトはドキュメントウインドウに関連付けられています(1つのドキュメントが複数のウインドウを持つことができます)。NSWindowControllerオブジェクトは、ドキュメントの表示を管理します。

Cocoaドキュメントアーキテクチャの3種類のオブジェクトには、MVCにおけるそれぞれの役割に応じた特定の責任があります。

Xcodeには、ドキュメントアーキテクチャをベースとしたCocoaアプリケーション用のプロジェクトテンプレートが用意されています。このテンプレートを使用してプロジェクトを作成すると、オーバーライドする必要のあるメソッドのスタブ実装を含んだNSDocumentサブクラスが(MyDocumentという名前で)得られます。また、“File's Owner”がMyDocumentとして設定されているドキュメントnibファイルも得られます。

参考資料: ドキュメントアーキテクチャの詳細については、『Document-Based Applications Overview』を参照してください。



< 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