また ObjC いいなと思えてきた。 Binary 2.0 は死んだらしいし。というかまた C に飽きてきた。
- 機能つぎはぎでゲームオブジェクトを作りたいことはよくあるので、 Category とか Protocol とかがゲームとかに向いてそう。(プレイヤーの攻撃を受ける、丸い形状の、画面から出たら消える、プレイヤーに触れたらプレイヤーが死ぬ、とかそういう組み合わせでごにょごにょ)
- リフレクション強い。たぶんシリアライザとかすぐ作れる。
- 関数の静的バインディング欲しかったっけ。
- 最近 GC 欲しい気分。
- C の遺産使える。
- C++ の遺産もたぶん使える。
- ランタイム小さいから Win バイナリ配りやすい。 GNUStep 入れると巨大だけど。
- 他言語ではわりと特殊な扱いになりがちな OSX でも本場だからたぶん安心。
- 他 Un*x でも apt-get install gcc-objc してちょ、で終わり。
とりあえずメソッドの列挙。全然 Objective-C じゃないけど。
#include <stdio.h> #include <stdlib.h> #include <objc/objc-api.h> int main() { Class cl; void* es = NULL; while ((cl = objc_next_class(&es))) { MethodList* ml; for (ml = cl->methods; ml; ml = ml->method_next) { int i; for (i = 0; i < ml->method_count; ++i) { Method* m = &ml->method_list[i]; if (m->method_name) { printf("%s.%s\n", cl->name, sel_get_name(m->method_name)); } } } } return 0; }