0

我有一个NSDictionary充满数据的。如果这是 php,则可以通过以下方式访问它:

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

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

4

3 回答 3

3

Objective-C 中的等效代码是:

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

注意objectForKey:是NSDictionaryobjectAtIndex:的方法,也是NSArray的方法。

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

id data = array[@"all_items"][0][@"name"];

另请注意,如果“array”是一个 NSDictionary 实例,并且您想要获取字典中所有值的数组,则使用allValuesNSDictionary 的方法:

id data = [array allValues][0][@"name"];

当然,allValues返回一个未排序的数组,所以按索引访问数组并不是很有用。更典型的是,您会看到:

for (NSDictionary* value in [array allValues])
{
    id data = value[@"name"];
    // do something with data
}
于 2012-09-19T03:09:27.527 回答
1

不幸的是,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"];
于 2012-09-19T02:44:40.953 回答
0

你应该使用它,

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

您可以在这里查看问题

于 2012-09-19T02:48:43.373 回答