[objective-c]事始め
2008/11/08
objective-c
Objective-Cです。環境はmac osx上です。事始めです。
4〜5年前に「オブジェクトCオブジェクトC」と連呼していたら、オブジェクティブCだよと訂正されたことがあります。
ソースコードの拡張子は.mです。
コンパイルは普通にgccで。
この時点では、特にオブションなしでgcc main.mとかで。
#include <stdio.h>
@interface A
@end
@implementation A
@end
int main(void){
printf("test to test!!\n");
return 0;
}
@interface A
@end
@implementation A
@end
int main(void){
printf("test to test!!\n");
return 0;
}
@〜でくくられたところは、コンパイラ指示子(compiler directive)
簡単な実装
ここからgccにおまじないが必要になります。
gcc main.m -framework Foundation
-framework Foundation
NSObjectにallocがあるようです。
#include <Foundation/NSObject.h>
#include <stdio.h>
@interface A: NSObject
{
int i;
}
- (void)mymethod;
@end
@implementation A
- (void)mymethod
{
printf("i am A:[%d]!!\n", i++);
}
@end
int main(void)
{
id a;
a = [A alloc];
[a mymethod];
[a mymethod];
return 0;
}
#include <stdio.h>
@interface A: NSObject
{
int i;
}
- (void)mymethod;
@end
@implementation A
- (void)mymethod
{
printf("i am A:[%d]!!\n", i++);
}
@end
int main(void)
{
id a;
a = [A alloc];
[a mymethod];
[a mymethod];
return 0;
}
えーと、Objective-Cは
[オブジェクト メッセージ]
というふうに書く。
メッセージ式(message expression)っていうらしい。
javaとかで書くと
オブジェクト.メソッド
って感じなのかな。
新しい言語を学ぶときは、自分が慣れた言語から類推するとなんとなくわかるけど、「郷に入れば郷に従え」を心がけて名称とか、用語をきちんと守りたいところ。
: