iOS開発をやっていて、NSDictionaryでよく使うdictionaryWithObjectsAndKeys、NSArrayのarrayWithObjectsですが、下記のように入れ子になってくると何のこっちゃ分からなくなります。
NSDictionary *dictionary1 = [NSDictionary dictionaryWithObjectsAndKeys:
@"Taichiro", @"firstname",
@"Yoshida", @"lastname",
[NSArray arrayWithObjects:
[NSDictionary dictionaryWithObjectsAndKeys:
@"twitter", @"type",
@"dataich", @"id",
nil
],
[NSDictionary dictionaryWithObjectsAndKeys:
@"facebook", @"type",
@"dataich", @"id",
nil
],
nil],
@"accounts",
nil
];
NSLogで出力した結果を見ると、下記のようなシンプルな内容なのですが。
{ accounts = ( { id = dataich; type = twitter; }, { id = dataich; type = facebook; } ); firstname = Taichiro; lastname = Yoshida; }
これをもう少し簡単にかける方法があります。
dictionaryWithObjectsAndKeysには @{}
arrayWithObjectsには @[]
というリテラル?が用意されてます。
これを使って書き直すと下記のようになります。
NSDictionary *dictionary2 = @{
@"firstname" : @"Taichiro",
@"lastname" : @"Yoshida",
@"accounts" : @[
@{
@"type" : @"twitter",
@"id" : @"dataich"
},
@{
@"type" : @"facebook",
@"id" : @"dataich"
}
]
};
ちょっとは見やすくなりますね!