Iphone 如何从字典中检索数组,然后在该数组中检索字典?

Iphone 如何从字典中检索数组,然后在该数组中检索字典?,iphone,ios,xml,xcode,nsdictionary,Iphone,Ios,Xml,Xcode,Nsdictionary,我想知道如何从字典中检索数组,然后从数组对象检索字典 我正在关注这个 让我们假设您对其进行解析,并具有如下内容: ( //object 0 { postID= 26; score = 20; title = www.google.com url = www.google.com }, //object 1 { postID= 27; score = 10; title = www.google.com

我想知道如何从字典中检索数组,然后从数组对象检索字典

我正在关注这个


让我们假设您对其进行解析,并具有如下内容:

    (
//object 0
    {
    postID= 26;
    score = 20;
    title = www.google.com
    url = www.google.com
    },
//object 1
    {
    postID= 27;
    score = 10;
    title = www.google.com
    url = www.google.com
    }...
    )
这是你的阵列

objectAtIndex:0,在本例中为:

{
postID= 26;
score = 20;
title = www.google.com
url = www.google.com
}

是一本字典。

好的,你要做的是以下几点

NSArray *itemArray = [xmlDictionary objectForKey:@"itemDict"];

for (NSDictionary *dict in itemArray) {

    NSLog(@"Dictionary: %@", dict);

    for (NSDictionary *dictObject in [dict allKeys]) {

         NSLog(@"Dictionary Object: %@", dictObject);

    }

}
从我从发布的链接中收集到的信息来看,您有一个顶级的
NSDictionary
,其中包含XML。在
NSDictionary
中会有一个对象,根据您的示例,它将是
itemDict
,但在我看来,它更像一个NSArray

从这里开始,我将把
NSArray
存储在另一个里面

该数组中的每个对象都是与之匹配的键和对象的
NSDictionary
。很明显,我说的是这一点

{
    postID =         {
        text = 26;
    };
    score =         {
        text = 20;
    };
    title =         {
        text = "http://www.google.com quiz";
    };
    url =         {
        text = "http://www.google.com";
    };
},
也许像下面这样的事情会让你潜得足够深

NSArray *itemArray = [xmlDictionary objectForKey:@"itemDict"];

for (NSDictionary *dict in itemArray) {

    NSLog(@"Dictionary: %@", dict);

}
该代码应该显示NSArray中每个NSDictionary的输出。从这里开始,这是一个使用NSDictionary做任何事情的简单例子

编辑

只是又看了一眼,我想我也应该加上这个。 似乎我们用上述代码创建的每个NSDictionary都有另一个对象的键,并且该对象存储在另一个dictionary中。如果你问我XML有点奇怪

但是,解决办法可能如下

NSArray *itemArray = [xmlDictionary objectForKey:@"itemDict"];

for (NSDictionary *dict in itemArray) {

    NSLog(@"Dictionary: %@", dict);

    for (NSDictionary *dictObject in [dict allKeys]) {

         NSLog(@"Dictionary Object: %@", dictObject);

    }

}
如果这不是你想要做的,请编辑你的问题,这样我可以纠正我的回答

希望有帮助