Objective c 目标C中的多维数组

Objective c 目标C中的多维数组,objective-c,arrays,nsdictionary,Objective C,Arrays,Nsdictionary,我有一本NSDictionary,里面装满了数据。如果这是php,则可以通过以下方式访问: $data = $array['all_items'][0]['name']; 我如何在目标c中做类似的事情?($array将是一个NSDictionary)不幸的是,objective-c版本在语法上不如PHP版本优雅: NSDictionary *array = ...; NSArray *foo = [array objectForKey@"all_items"]; NSDictionary *b

我有一本
NSDictionary
,里面装满了数据。如果这是php,则可以通过以下方式访问:

$data = $array['all_items'][0]['name'];

我如何在目标c中做类似的事情?(
$array
将是一个
NSDictionary

不幸的是,objective-c版本在语法上不如PHP版本优雅:

NSDictionary *array = ...;
NSArray *foo = [array objectForKey@"all_items"];
NSDictionary *bar = [foo objectAtIndex:0];
NSString *data = [bar objectForKey@"name"];
为简洁起见,您可以在单行上执行此操作,如下所示:

NSString *data = [[[array objectForKey@"all_items"] objectAtIndex:0] objectForKey@"name"];

不幸的是,objective-c版本在语法上不如PHP版本优雅:

NSDictionary *array = ...;
NSArray *foo = [array objectForKey@"all_items"];
NSDictionary *bar = [foo objectAtIndex:0];
NSString *data = [bar objectForKey@"name"];
为简洁起见,您可以在单行上执行此操作,如下所示:

NSString *data = [[[array objectForKey@"all_items"] objectAtIndex:0] objectForKey@"name"];
你应该用它

NSString *value = [[multiArray objectAtIndex:1] objectAtIndex:0];
你可以看看这个问题,你应该用它

NSString *value = [[multiArray objectAtIndex:1] objectAtIndex:0];

您可以查看问题

Objective-C中的等效代码是:

id data = [[[array objectForKey:@"all_items"] objectAtIndex:0] objectForKey:@"name"];
请注意,
objectForKey:
是NSDictionary的一种方法,
objectAtIndex:
是NSArray的一种方法

Xcode 4.5中使用LLVM 4.1的快捷方式是:

id data = array[@"all_items"][0][@"name"];
还请注意,如果“array”是NSDictionary实例,并且您希望获得字典中所有值的数组,则可以使用NSDictionary的
allValues
方法:

id data = [array allValues][0][@"name"];
当然,
allValues
返回未排序的数组,因此按索引访问数组不是很有用。更典型的是,您会看到:

for (NSDictionary* value in [array allValues])
{
    id data = value[@"name"];
    // do something with data
}

目标C中的等效代码为:

id data = [[[array objectForKey:@"all_items"] objectAtIndex:0] objectForKey:@"name"];
请注意,
objectForKey:
是NSDictionary的一种方法,
objectAtIndex:
是NSArray的一种方法

Xcode 4.5中使用LLVM 4.1的快捷方式是:

id data = array[@"all_items"][0][@"name"];
还请注意,如果“array”是NSDictionary实例,并且您希望获得字典中所有值的数组,则可以使用NSDictionary的
allValues
方法:

id data = [array allValues][0][@"name"];
当然,
allValues
返回未排序的数组,因此按索引访问数组不是很有用。更典型的是,您会看到:

for (NSDictionary* value in [array allValues])
{
    id data = value[@"name"];
    // do something with data
}

我认为这里的数据是NSArray,其中是NSDictionary。我认为这里的数据是NSArray,其中是NSDictionary。