HeaderDoc Objective-C Tag set

TopPage

OCUnit

HeaderDoc

GNUstep

Xcode

EmacsWiki


PageList

ChangeLog

はじめに
ObjectiveCクラスの処理
ObjectiveCプロトコルの処理
ObjectiveCカテゴリの処理
この文書のお約束
@classタグ, @protocolタグ, @categoryタグ
Classタグとプロトコルタグ
メソッドタグ

はじめに

HeaderDocのObjectiveCヘッダーの処理方法はほとんどCヘッダーと同じです. 実際HeaderDocがObjectiveCヘッダーでクラス宣言に遭遇するまで処理は同一です。 つまり、ObjectiveCヘッダーの中でCヘッダーのために定義されたタグのどれでも使うことができることを意味します.詳しくはHeaderDoc_Objective-C_TagSetを参照してください.

例えば、2つのクラスを宣言するヘッダーファイルで、あなたは,なぜこれらのクラスがまとめられているかを@headerタグを使って説明が出来ます.そしてそれぞれのクラス用の説明を提供するために@classタグを使うことができます.

クラス宣言中で、それぞれのメソッドを文書化するために@methodタグを使うことができます。

ObjectiveCはCのスーパーセットであるので、ヘッダーはでは、クラス定義以外のタイプの宣言や関数宣言があるかもしれません.そのために@typedefや@function等のC言語タグを使うことが出来ます

ObjectiveCクラスの処理

HeaderDocがObjectiveCヘッダーで@classタグに遭遇すると、それはクラス宣言の始まりから終わりまでのコメントと宣言の全部を、ヘッダーファイルについてのタグではなく、そのクラスにのタグであるとみなします.

HeaderDocがObjectiveCヘッダーからHTMLドキュメンテーションを生成する時に、ヘッダー中で宣言されたクラス毎に分割されたframesetを作ります.

ObjectiveCプロトコルの処理

HeaderDocはクラス宣言の様に単純に ObjectiveCプロトコル宣言を処理します。 プロトコルとメソッドの宣言のドキュメンテーションはそれら自身のframesetにまとめられます.プロトコルを含むヘッダーからアクセスできる様になります.

ObjectiveCカテゴリの処理

ObjectiveC カテゴリー機能はが既にあるクラスにメソッドを後から加えさせる事が出来ます。 HeaderDoc が1回分のヘッダーを処理して、そしてカテゴリーで宣言されたメソッドのためにコメントを見いだすとき、それは関連づけられたクラスドキュメンテーションを捜して、そしてクラスドキュメンテーションにそれらのメソッドとそれらのドキュメンテーションを加えます。 もしクラスが現在のバッチに存在していないならHeaderDocはカテゴリーのためにドキュメンテーションの別のframesetを作るでしょう。

HeaderDocは、ObjectiveCのクラス、プロトコル、カテゴリ宣言の中でだけ@methodタグを受け付けます.

この文書のお約束

タグはそれぞれのタイプに依存して、1つか2つの追加情報を提供するフィールドがあります.

 @method [メソッド名]
 @param [パラメーター名] [パラメータについての説明...]
以下の表での"フィールド数"の行の番号はそのタグがいくつのフィールドをとるかを示しています. 注意)赤く書かれたタグは必須タグです.

@classタグ, @protocolタグ, @categoryタグ

ObjectiveCでクラスとプロトコルの宣言は非常に似ています. 従ってHeaderDocでは@classと@protocolの使用法が同じになっています.

Classタグとプロトコルタグ

TagIdentifiesFileds
@classクラス名.1
@categoryカテゴリのヘッダーで宣言されているフルネーム. 例"MyClass(MyCategory)". HeaderDocは関連しているクラスを探すために "MyClass" の部分を使用します1
@protocolプロトコル名.1

これらのタグに続いて、クラス、プロトコル、あるいはカテゴリーの目的について説明文を書く事が出来ます.

下の例にで説明する様に説明文を簡単なサマリーと込入った本文に分けることができます.( @abstract と @discussion タグを使ったやつ) あるいは,さらに次の例でみる様にタグを使わないで単一テキストブロックで説明文を提供する事も出来ます。
例 1 - @abstractと@discussionタグを使った例

/*!
 @class      NSPrinter
 @abstract   An NSPrinter object describes a printer's capabilities.
 @discussion An NSPrinter object describes a printer's capabilities,
             such as whether the printer can print in color and whether
             it provides a particular font. An NSPrinter object represents...
*/
@interface NSPrinter: NSObject 
...
@end

例 2 - 単一テキストブロックによるドキュメンテーションの例

/*!
 @class NSPrinter
        An NSPrinter object describes a printer's capabilities, such as
        whether the printer can print in color and whether it provides a
        particular font. An NSPrinter object represents...  
*/
@interface NSPrinter: NSObject 
...
@end

メソッドタグ

@methodタグはメソッド宣言のためのタグです.ObjectiveCのclass,protocol,categoryの中で使えます.

TagIdentifiesFields
@methodメソッド名とその説明.2
@paramパラメータ名とその説明.2
@resultメソッドの返り値の説明.1

/*! 
 @method                 dateWithString:calendarFormat:   
 @abstract               Creates and returns a calendar date initialized with 
                         the date specified in the string description. 
 @discussion             [An extended description of the method...]
 @param      description A string specifying the date.
 @param      format      Conversion specifiers similar to those used in strftime().
 @result                 Returns the newly initialized date object or nil on error.
*/
+ (id)dateWithString:(NSString *)description calendarFormat:(NSString *)format;

Updated: 2004-01-01 MindTools