Objective-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
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