如何从 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 消息中的根对象返回以下内容之一:
因此,您不应总是假设它会返回字典,除非您确实知道 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 中的所有值吗?