読者です 読者をやめる 読者になる 読者になる

プログラミングノート

一からものを作ることが好きなエンジニアの開発ブログです。

LinuxでObjective-Cを動かしてみる

Macは慣れてないし会社でしか触れないので、とりあえず学習用にLinuxVine)にObjective-Cを入れてみることに。aptパッケージがあったのでインストールはコマンド1発で終了。

# apt-get install gcc-objc

クラスを作ってみる

Objective-Cでは、クラスのインタフェース(@interface)を .h、クラスの実装(@implementation)を .m ファイルに保存するとよいみたい。.cでも問題なくコンパイルできけど、当然@implementationなどの機能が使えない。

TestClass.h
#include <objc/Object.h>
@interface TestClass : Object{
  char *name;
}
-(void)printName;
-(void)setName:(char *)name;
@end
TestClass.m
#include <objc/Object.h>
#include "TestClass.h"
@implementation TestClass
  -(void)printName{
    printf("Hello %s\n", self->name);
  }
  -(void)setName:(char *)myname{
    self->name = myname;
  }
@end

int main(){
  char *name = "Objective-C";
  id obj = [TestClass alloc];
  [obj setName:name];
  [obj printName];
  return 0;
}
  • []でメソッドを呼び出す方式をメッセージ方式と呼ぶ。
  • [XXX alloc]はnewと同等の働きをする。
  • オブジェクトはどのクラスに属するものでもid型で表現される。
実行
$ gcc TestClass.m -lobjc
$ ./a.out
Hello Objctive-C

Objectiveの前にC言語をほとんどやっていないのでまずそこからかなあという感じ。でもiPhoneアプリを作ってみたいのでがんばってみよっと。