为什么objectForKey:@“”返回(null)?
问题描述:
我一整天都在摔跤,不知道自己做错了什么。我有一个NSDictionary
为什么objectForKey:@“”返回(null)?
NSDictionary*dict=[tutorialsNodes objectAtIndex:0];
当我NSLog(@"%@",dict);
它返回以下...
{
nodeAttributeArray = (
{
attributeName = class;
nodeContent = style1;
}
);
nodeChildArray = (
{
nodeContent = "Number of Patrons Using Facility: 151";
nodeName = text;
},
{
nodeName = br;
},
{
nodeContent = "
\n Room Occupancy: 210 ";
nodeName = text;
},
{
nodeName = br;
},
{
nodeContent = "
\n Current Wait: 0 minutes ";
nodeName = text;
}
);
nodeName = p;
}
然而,当我输入以下代码...
NSArray*dictArray=[dict objectForKey:@"nodeChildArray"];
NSLog(@"%@",dictArray);
它返回null
。我正在尝试从NodeChildArray
密钥中提取nodeContent,但我甚至无法取得密钥。不知道为什么它一直返回null
修订
下面是我执行的确切行...
//some HTML parsing before this
NSArray *tutorialsNodes = [tutorialsParser
searchWithXPathQuery:tutorialsXpathQueryString];
NSDictionary*dict=[tutorialsNodes objectAtIndex:0];
NSArray*dictArray=[dict objectForKey:@"nodeChildArray"];
NSLog(@"%@",dictArray);
它返回null
两次
答
按您的评论:
该应用程序崩溃时,我打印[字典allKeys] ...我得到以下 errror ***终止应用程序由于未捕获的异常 “NSInvalidArgumentException”的,理由是:“ - [TFHppleElement allKeys]: 无法识别的选择发送到instanc
这就是为什么你不能基于关键字提取值。你从字典中获得THppleElement。您需要再次parse this TFHppleElement to NSDictionary才能获得所需的valueForKey。
+0
非常感谢,我会研究这些! – pj409 2013-03-01 03:14:56
此输出看起来不像是从字典对象生成的。我怀疑它没有正确序列化,实际上只是一个字符串。尝试用'NSLog(@“%@”,[dictArray allKeys]);'来验证它是否已正确序列化,然后询问字典中的所有关键字。 – JoePasq 2013-03-01 02:17:02
验证'dict'不是'nil'。如果不是,那么'dict'没有'@“nodeChildArray”'键。 – rmaddy 2013-03-01 02:17:08
向我们展示您正在执行的行,按照执行它们的精确顺序,包括NSLog语句以及相关声明的摘要。最有可能的是,你在第一个陈述和第二个陈述之间失去了“dict”。 – 2013-03-01 02:35:04