如何从 NSdictionary 获取键值 - iphone sdk

Posted

技术标签:

【中文标题】如何从 NSdictionary 获取键值 - iphone sdk【英文标题】:How to get key value from NSdictonary - iphone sdk 【发布时间】:2010-02-15 15:11:59 【问题描述】:

我使用的 API 为我提供来自网络的数据。数据采用 JSON 格式,存储在 NSDictionary 中。像这样:

SBJSON *parser = [[SBJSON alloc] init];
dict = [[NSDictionary alloc]init];
dict = [parser objectWithString:jsonArray error:nil];

Ggb 控制台结果:po dict

        1262 =             
            "feed_name" = name1;
            "new_results" = 6;
            "next_update" = "2010-02-16T15:22:11+01:00";
        ;
        1993 =             
            "feed_name" = name2;
            "new_results" = 0;
            "next_update" = "2010-02-16T09:09:00+01:00";
        ;
   

如何访问值“1262”和“1993”并将它们放入NSArray,以便在UITableView 中使用?

【问题讨论】:

【参考方案1】:

首先,SBJSON 的objectWithString:error: 方法将根据 JSON 消息中的根对象返回以下内容之一:

NSArray NSDictionary

因此,您不应总是假设它会返回字典,除非您确实知道 JSON 中将返回什么。

其次,您分配了一个新的 NSDictionary 对象,然后将解析器的结果分配给您的 dict 变量,从而泄漏了先前分配的字典。 您不需要此行:dict = [[NSDictionary alloc]init];

最后,由于返回的对象一个字典,你可以像这样从字典中取出所有的对象:

for (NSString *key in [dict allKeys])

    NSDictionary *feed = [dict objectForKey:key];

    //do stuff with feed.

【讨论】:

感谢您的快速回复!它对我有用!根据您的建议,内存问题也消失了。【参考方案2】:
return [dict allKeys];

【讨论】:

以上是关于如何从 NSdictionary 获取键值 - iphone sdk的主要内容,如果未能解决你的问题,请参考以下文章

我可以从一个键值访问 NSDictionary 中的所有值吗?

从给定键值对的字典数组中过滤 NSDictionary

我无法从 plist 键值中解包值

如何从目标 C 中的 NSDictionary 中检索字符串?

如何从 NSDictionary 获取整数值?

如何从 NSDictionary 获取整个对象