objective-c - 从数组中检索单独的值

标签 objective-c arrays cocoa

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

source id key is (

   {

   name = "ABC Rawal";

   uid = 10000048171452;

} )

这是我用来执行此操作的代码:

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

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

}

我必须分别获取nameuid。如何从结果中检索这些值?

最佳答案

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];

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

关于objective-c - 从数组中检索单独的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6421022/

相关文章:

objective-c - 操作系统 : How to detect if Mission Control is running?

JavaScript:如何在给定 id 的情况下从对象数组中获取对象,而不使用 for..in 循环?

macos - 从 Mac 发送 iMessage

ios - 可调整大小的图像

c++ - cpp 文件 #include 导致错误,@class 不

arrays - Excel 公式填充数组

macos - LLDB - 退出...退出?

objective-c - 从启动服务中删除 URL 方案处理程序

c++ - Objective-C++ 是与 Objective-C 完全不同的语言吗?

c# - 最大递增序列