0

我正在尝试从简单的 json 响应中获取数据。

第一个日志显示我找到了一个名为 access_token 的项目,但是我不能从中使用 objectForKey,我得到了[__NSCFString objectForKey:]: unrecognized selector sent to instance 0x72de3b0

我究竟做错了什么?

 for(NSDictionary *item in authResponse)
    {
        NSString *s1 = @"access_token";
        NSString *s2 = [item description];

        NSLog(@"access desc: %@", [item description]);
        if([s1 isEqualToString:s2]){
            NSLog(@"Item: %@", [item objectForKey:@"access_token"]);
        }
    }
4

1 回答 1

1

authResponse对象是一个NSDictionary对象,但是它会在其中包含许多其他类型,包括其他NSDictionary对象。您需要更加小心地解释每个成员:

for (NSObject *item in authResponse)
{
    if ([item isKindOfClass:[NSDictionary class]])
    {
        NSDictionary *dictItem = (NSDictionary *)item;
        //  do thing with sub-dictionary
    }
    else if ([item isKindOfClass:[NSString class]])
    {
        NSString *stringItem = (NSString *)item;
        //  do thing with string item
    }
    else if ([item isKindOfClass:[NSNumber class]])
    {
        NSNumber *numberItem = (NSNumber *)item;
        //  do thing with number item
    }
}
于 2013-06-17T16:10:48.017 回答