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)