2010年5月15日土曜日

カテゴリ

Objective-Cには「カテゴリ」という機能が存在します。
「カテゴリ」は同一クラスを複数のファイルで定義できる機能です。
この機能を利用すると例えばUIViewというクラスに後から独自にメソッドを追加することができます。
クラスの継承ではあるクラスに別のクラスをラップしてラップしたクラスにメソッドを追加することはできましたが、「カテゴリ」では、クラスそのものにメソッドを追加できるのが異なる点です。
C#には「パーシャルクラス」というものがありますが、あれとほぼ同じです。ただし、Objective-Cの方は後からインスタンスを追加できないという制限があります。

以下は、UIViewクラスに後からtestMethodを追加する例です。
ヘッダの宣言例

@interface UIView ( UIViewExtentions )
- (void) testMethod;
@end


ソースの例

@implementation UIView ( UIViewExtentions )
- (void) testMethod
{
・・・
}
@end

クラス名に続けて「( カテゴリ名 )」を付加する以外はほとんど同じですね。

0 件のコメント:

コメントを投稿