Objective-Cの用語ではクラスメソッドというものです。
Javaでいうところのstaticにあたります。
当然ながら、メンバ変数を持つことはありません。
メソッドの宣言に+(プラス記号)をつけます。
#import <stdio.h> #import <Foundation/NSObject.h> @interface Test:NSObject { int index; } - (void) hello; - (void) setIndex:(int) i; + (void) dump; @end @implementation Test - (void) setIndex:(int) i { self->index=i; } -(void)hello { printf("Hello NSObject %d\n",self->index); } +(void)dump { printf("Class method = static"); } @end int main() { [Test dump]; return 0; }
他にも@propertyや@synthesizeなどいうキーワードがありますが、GNUstepはサポートしていません。
参照先がreleaseされたときの挙動を変えるものです。
@property(nonatomic, assign)
@property(nonatomic, retain)