私はNSDictionary
データでいっぱいです。これが php の場合、次のような方法でアクセスできます。
$data = $array['all_items'][0]['name'];
目的 c で同様のことを行うにはどうすればよいですか? ($array
になりますNSDictionary
)
私はNSDictionary
データでいっぱいです。これが php の場合、次のような方法でアクセスできます。
$data = $array['all_items'][0]['name'];
目的 c で同様のことを行うにはどうすればよいですか? ($array
になりますNSDictionary
)
Objective-C の同等のコードは次のとおりです。
id data = [[[array objectForKey:@"all_items"] objectAtIndex:0] objectForKey:@"name"];
objectForKey:
NSDictionaryobjectAtIndex:
のメソッドであり、NSArray のメソッドであることに注意してください。
LLVM 4.1 を使用した Xcode 4.5 のショートカットは次のとおりです。
id data = array[@"all_items"][0][@"name"];
また、「配列」が NSDictionary インスタンスであり、辞書内のすべての値の配列を取得する場合は、allValues
NSDictionary のメソッドを使用することに注意してください。
id data = [array allValues][0][@"name"];
もちろん、allValues
ソートされていない配列を返すため、インデックスによる配列へのアクセスはあまり役に立ちません。より一般的には、次のように表示されます。
for (NSDictionary* value in [array allValues])
{
id data = value[@"name"];
// do something with data
}
残念ながら、objective-c バージョンは、PHP バージョンほど構文的に洗練されていません。
NSDictionary *array = ...;
NSArray *foo = [array objectForKey@"all_items"];
NSDictionary *bar = [foo objectAtIndex:0];
NSString *data = [bar objectForKey@"name"];
簡潔にするために、次のように 1 行でこれを行うことができます。
NSString *data = [[[array objectForKey@"all_items"] objectAtIndex:0] objectForKey@"name"];