为什么是objectForKey:@“”返回(null)?

时间:2013-03-01 02:12:32

标签: ios objective-c indexing nsarray nsdictionary

我一整天都在挣扎,不知道我做错了什么。我有NSDictionary

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

REVISION

以下是我正在执行的确切行......

//some HTML parsing before this
NSArray *tutorialsNodes = [tutorialsParser   
searchWithXPathQuery:tutorialsXpathQueryString];

NSDictionary*dict=[tutorialsNodes objectAtIndex:0];

NSArray*dictArray=[dict objectForKey:@"nodeChildArray"];

NSLog(@"%@",dictArray);

它返回null两次

1 个答案:

答案 0 :(得分:1)

根据你的评论:

  

当我打印[dict allKeys]时应用程序崩溃了...我得到以下内容   错误***由于未捕获的异常而终止应用程序   ' NSInvalidArgumentException',原因:' - [TFHppleElement allKeys]:   无法识别的选择器发送到instanc

这就是为什么您无法基于Key提取值的原因。你从词典中得到了THppleElement。您需要再次parse this TFHppleElement to NSDictionary来获取所需的valueForKey。