iPhoneアプリを作るなら、Objective-Cという言語を知っておく必要が ありそうなので、とりあえず、LinuxでObjective-Cをやってみる。 参考にしている書籍は、以下。 http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=hughundercons-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=4797346809 私は、とりあえず、図書館で借りました。 が、図書館に無かったり、近くに図書館が内容な場合は、上記からご購入ください :-)
Apple製品専用言語なのかと思ったが、ググったら、Linuxでも動きそうだったので、 挑戦してみる。
以下、その内容。 まずは、Objective-Cの環境をインストール。 Linux で Objective C を走らせてみた の記事を参照して、以下の様にインストール。
$ sudo aptitude install gobjc
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています... 完了
拡張状態情報を書き込んでいます... 完了
以下の新規パッケージがインストールされます:
gobjc gobjc-4.3{a} libobjc2{a}
0 個のパッケージを更新、 3 個を新たにインストール、 0 個を削除予定、1 個が更新されていない。
3700kB のアーカイブを取得する必要があります。 展開後に 9478kB のディスク領域が新たに消費されます。
先に進みますか? [Y/n/?] Y
拡張状態情報を書き込んでいます... 完了
取得:1 http://jp.archive.ubuntu.com jaunty/main libobjc2 4.3.3-5ubuntu4 [160kB]
取得:2 http://jp.archive.ubuntu.com jaunty/main gobjc-4.3 4.3.3-5ubuntu4 [3538kB]
取得:3 http://jp.archive.ubuntu.com jaunty/main gobjc 4:4.3.3-1ubuntu1 [894B]
3700kB を 2s 秒でダウンロードしました (1552kB/s)
未選択パッケージ libobjc2 を選択しています。
(データベースを読み込んでいます ... 現在 250930 個のファイルとディレクトリがインストールされています。)
(.../libobjc2_4.3.3-5ubuntu4_amd64.deb から) libobjc2 を展開しています...
未選択パッケージ gobjc-4.3 を選択しています。
(.../gobjc-4.3_4.3.3-5ubuntu4_amd64.deb から) gobjc-4.3 を展開しています...
未選択パッケージ gobjc を選択しています。
(.../gobjc_4%3a4.3.3-1ubuntu1_amd64.deb から) gobjc を展開しています...
libobjc2 (4.3.3-5ubuntu4) を設定しています ...
gobjc-4.3 (4.3.3-5ubuntu4) を設定しています ...
gobjc (4:4.3.3-1ubuntu1) を設定しています ...
libc6 のトリガを処理しています ...
ldconfig deferred processing now taking place
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています... 完了
拡張状態情報を書き込んでいます... 完了
で、まずは、お約束Hello Worldからw(インターネットはどれくらい"Hello World"であふれているのだろうか..)
test1.m というファイル名で以下のソースを記述。
#import
int main() {
printf("Hello World!\n");
return 0;
}
で、以下のコマンドを実行。
$ gcc test1.m -lobjc
$ ./a.out
Hello World!
って、これじゃ、普通のC言語と変わらない!w
というわけで、インターフェース、クラスを使ってみる。
#import
@interface Human : Object
{
int age;
}
-setAge :(int) a;
-(int) getAge;
@end
@implementation Human
-setAge :(int) a { age = a; return self; }
-(int) getAge { return age; }
-(void) sayAge { printf("I'm %d years old.\n", age); }
@end
int main() {
id human = [Human alloc];
[human setAge: 23];
[human sayAge];
return 0;
}
で、コンパイル&実行すると、
$ gcc test1.m -lobjc
$ ./a.out
I'm 23 years old.
インターフェースにないメソッド(メッセージ?)を、実装で追加しても良いらしい。。 というわけで、なんとなく雰囲気をつかんだので、今のところは、まぁ良しとします。
参考サイト:
Comments
comments powered by Disqus