写経しかけのヒレガス本を読了。
- 作者: Aaron Hillegass,アーロン・ヒレガス,堂阪真司
- 出版社/メーカー: ピアソン桐原
- 発売日: 2012/09/28
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 8回
- この商品を含むブログ (4件) を見る
おすすめです。
Xcode4.4のObjective-Cリテラル
後半におまけ的に記載されていた
Xcode4.4のObjective-Cリテラルについて(今更ですが)。
LLVMコンパイラ4.0によって以下の機能を実現。
rubyっぽく書けるようになって嬉しい。
NSArray
# Xcode4.3 NSArray *colors = [NSArray arrayWithObjects: @"Orange", @"Yellow", @"Green", nil]; # Xcode4.4以降 NSArray *colors = @[@"Orange", @"Yellow", @"Green"]; // nilは不要
NSDictionary
# 4.3 NSArray* titles = [NSArray arrayWithObjects:@"CEO", @"CTO", nil]; NSArray* persons = [NSArray arrayWithObjects:firstPerson, secondPerson, nil]; NSDictionary * executives = [NSDictionary dictionaryWithObjects:persons forKeys:titles]; # 4.4以降 NSDictionary *executives = @{@"CEO" :firstPerson, @"CTO" :secondPerson};
NSNumber
# 4.3 NSNumber *number = [NSNumber numberWithInt:4]; # 4.4以降 NSNumber *number = @4; # 4.4以降 # 式の評価結果をNSNumberリテラルとする NSNumber *number = @(1+2);
コンテナの添字指定
NSArray/NSMutableArray
# 4.3 NSDate *date = [dateList objectAtIndex:0]; [dateList replaceObjectAtIndex:0 withObject:now]; # 4.4以降 NSDate *date = dateList[0]; dateList[0] = now;
NSDictionary/NSMutableDictionary
# 4.3 NSString *symbol = [stocks objectForKey:@"symbol"]; [stock setObject:@"AAPL" forKey:@"symbol"]; # 4.4以降 NSString *symbol = stocks[@"symbol"]; stocks[@"symbol"] = @"AAPL";