Objective-Cに入門した

構文がキモいとか書かれているのを見て敬遠してたのだけど、Haskell最初に読んだ時とかOCamlとかOzのほうが強烈だったな。あいつらと比較すれば[Java,C,C++,Go,Objective-C]でくくれるじゃんとか思ったけど、実際にアプリ作るとキモいとか思うのかな。

読んだのはObjective-Cの入門本でiPhoneアプリ開発系の本ではない。

ProductName XcodeによるObjective-C入門
大津 真
毎日コミュニケーションズ / 3150円 ( 2010-01-23 )


構文

ラベル

メソッド名とセレクタ、ラベルがわかりにくかった

クラスメソッドの実行

[[NSString alloc] init]

と、括弧でくくるとクラスメソッドの実行になる。newとかないのかな?と思ったら

[NSStrint new]
// [[NSString alloc] init]と等価

でもいいらしい。

idは汎用データ型

どういう場面で使うといいのかいまいちわからん

property

@property  変数名;

で、ゲッタとセッタが簡単に定義できる(@synthesizeも必要)

これを使うとpythonみたいに.でアクセスできる

カテゴリ

使いどころがいまいちわからん。ミックスインとも違うんだよなぁ。

Tips

  • open -h とhオプションでヘッダファイルを検索して開くことができる

というわけで一通り頭に入れたのでCocos2Dの本でも読もうかなと思う。

はじめてのObjective-C

Yesodがインストールできなくてヤサグレてきたので、Objective-Cでも。

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
  NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

  NSLog(@"Hello, World!");
  [pool drain];
  return 0;
}

gccでコンパイルできるのね。

$ gcc -framework Foundation test.m 
$ ./a.out 
2012-10-04 17:21:09.654 a.out[22068:407] Hello, World!

よくわかるiPhoneアプリ開発の教科書はできるだけXcodeのGUIの助けを借りて開発する感じの本だった。

長いこと使うんだったらやっぱ詳解 Objective-C 2.0 第3版がよさそうだけど、pdfでないんだよな。重いのはつらい。

ProductName 詳解 Objective-C 2.0 第3版
荻原 剛志
ソフトバンククリエイティブ / 3990円 ( 2011-12-28 )