我如何迭代并获取NSDictionary中的所有值?

leo*_*ric 3 iphone xcode xmlreader objective-c nsdictionary

我有个问题.

我正在使用XMLReader类来获取a NSDictionary并且一切正常.但我无法获取productData元素的属性值.

具体来说,我有以下内容NSDictionary:

{
response = {
  products = {
   productsData = (
    {
    alias = "Product 1";
    id = 01;
    price = "10";
    },
    {
    alias = "Product 2";
    id = 02;
    price = "20";
    },
    {
    alias = "Product 3";
    id = 03;
    price = "30";
  });
 };
};
}
Run Code Online (Sandbox Code Playgroud)

我用这段代码来创建de NSDictionary:

NSDictionary *dictionary = [XMLReader dictionaryForXMLData:responseData error:&parseError];
Run Code Online (Sandbox Code Playgroud)

和responseData包含:

<application>
  <products>
    <productData>
      <id>01</id>
      <price>10</price>
      <alias>Product 1</alias>
    </productData>
    <productData>
      <id>02</id>
      <price>20</price>
      <alias>Product 2</alias>
    </productData>
    <productData>
      <id>02</id>
      <price>20</price>
      <alias>Product 3</alias>
    </productData>
  </products>
</application>
Run Code Online (Sandbox Code Playgroud)

然后,我不知道如何得到每个productData的值,如id,price和别名......

谁知道怎么做?

谢谢,请原谅我的英语不好!

Oli*_*ver 23

NSArray* keys = [theDict allKeys];

for(NSString* key in keys) {
    id obj = [theDict objectForKey:key];

    // do what needed with obj
}
Run Code Online (Sandbox Code Playgroud)

你可以尝试这样的事情:

NSArray* keys = [theDict allKeys];

for(NSString* key in keys) {
    if ([key isEqualToString:@"product"]) {
    NSArray* arr = [theDict objectForKey:key];

    // do what needed with arr 
}
    }
Run Code Online (Sandbox Code Playgroud)