zimathon blog

宿泊事業部システム開発部でエンジニアリーダーやってます。楽しくやってます。

【Objective-c】メソッドよりも同じ意味のリテラル構文を使う

リテラル構文?

NSObjectを使うときの構文が簡素化できる

リテラル数値

NSNumber *someNumber = [NSNumber numberWithInt:1];;
NSNumber *someNumber = @1;

ほら短くて簡潔

リテラル配列

NSNumber *animals = [NSArray arrayWithObjects:@"cat",@"dog",@"mousu",nil];
NSNumber *animals = @[@"cat",@"dog",@"mousu"];

要素にアクセス

NSString *dog = [animals objectAtIndex:1];
NSString *dog = animals[1];

ほら短くて簡潔

注意事項

オブジェクトの中にnilが含まれてるとエラーになるみたい

リテラル辞書

NSDictionary *personData = [NSDictionary dictionaryWithObjectsAndKeys:
@"Matt", @"firstName",
@"Galloway", @"lastName",
[NSNumber numberWithInt:28],@"age",
nil];
NSDictionary *personData = @{
@"firstName":@"Matt",
@"lastName":@"Galloway", 
@"age":28];

要素にアクセス

NSString *lastName = personData[@"lastName"];

正直辞書の書き方は夢に出てくるぐらいわかりづらいと思ったけど、リテラル構文使えばすっきり書けるからいいですね! さらにObjective-cが好きになりました:D