Objective-Cの履歴

はC言語

文字

NSString* str = @"Hello World";

デバッグ

NSLog(@"obj = %@", obj); // オブジェクトの場合 %@

foreach

NSArray *array = [NSArray arrayWithObjects:@"A", @"B", @"C", nil];
for (id i in array) {
  //なんか処理
}

NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:
    @"value1", @"key1",
    @"value2", @"key2",
    @"value3", @"key3",
    nil
  ];
// キーでループする場合
for (id i in [dictionary keyEnumerator]) {
  // なんか処理
}
// 値でループする場合
for (id i in [dictionary objectEnumerator]) {
  // なんか処理
}

enum

C言語にもあるな。

typedef enum{
  Left = -1,
  Right = 1
} Direction;
// 自動的にintになる?

Blocks

Rubylist歓喜。こなことができるらしい
http://blog.livedoor.jp/faulist/archives/1470672.html
http://blog.livedoor.jp/faulist/archives/1471218.html

instanceof

NSObjectが定義してる isKindOfClass を使う

if ([obj isKindOfClass:[NSString class]]){
  ...

まだよくわかっていないこと

  • @implementationにインスタンス変数は書けない?(なか変数名競合した)
  • autoreleaseよくわから。スコープ終わった時点でreleaseするみたいだが、インスタンス変数に代入してもいつの間にか消えてることがあった。
  • intよりNSUInteger使った方がいいだろうか


参考


最速マスター
http://d.hatena.ne.jp/fn7/20100203/1265207098

Google Objective-Cスタイルガイド 日本語
http://www.textdrop.net/google-styleguide-ja/objcguide.xml