从数组中检索单独的值

时间:2011-06-21 06:05:22

标签: objective-c arrays cocoa

我有一个变量,它在控制台上打印它的值如下:

  

源ID密钥是(

   {

   name = "ABC Rawal";

   uid = 10000048171452;
     

}   )

这是我用来做的代码:

-(void)request:(FBRequest*)request didLoad:(id)result {

    NSLog(@"source id key is %@", result);

}

我必须分别获得nameuid。如何从result

中检索这些值

1 个答案:

答案 0 :(得分:3)

result是一个由字典组成的数组。在您的示例中,数组只有一个元素。

如果只想要数组中的第一个元素,那么:

if ([result count] > 0) {
    NSDictionary *person = [result objectAtIndex:0];
    NSString *personName = [person objectForKey:@"name"];
    NSString *personUID = [person objectForKey:@"uid"];
    …
}

或者,如果你想迭代数组中的所有元素 - 如果数组有多个元素 - 那么:

for (NSDictionary *person in result) {
    NSString *personName = [person objectForKey:@"name"];
    NSString *personUID = [person objectForKey:@"uid"];
    …    
}

请注意,从输出中无法知道uid是字符串还是数字。上面的代码认为它是一个字符串;如果是数字,请使用:

NSInteger personUID = [[person objectForKey:@"uid"] integerValue];

或可以保存可能值范围的适当整数类型。