数组无法获取特定键的数据

时间:2013-10-03 12:32:43

标签: iphone ios objective-c

像这样的响应数组

 NewDataSet =     {
        Table =         (
                        {
                City =             {
                    text = "\nThiruvananthapuram";
                };
                Country =             {
                    text = "\n\nIndia";
                };
                text = "\n";
            },
                    {
                City =             {
                    text = "\nVellore";
                };
                Country =             {
                    text = "\n\nIndia";
                };
                text = "\n";
            }
        );
        text = "\n";

我已经写了这段代码..

xmlDictionary = [XMLReader dictionaryForXMLString:xmlResultString error:nil];

    NSLog(@"%@",xmlDictionary);



    NSLog(@"%@",xmlDictionary);

    NSArray * responseArr = xmlDictionary[@"NewDataSet"];

    NSLog(@"%@",responseArr);


    for(NSDictionary * dic in responseArr)
    {
        NSLog(@"%@",dic);

        //[array1 addObject:[dic valueForKey:@"City"]];

        [array1 addObject:[[dic valueForKey:@"City"] valueForKey:@"text"]];

    }

但没有得到数据。在array1中。请提前帮助我。

问题是我无法获得NSDictionary中的值。

错误日志

此类不符合关键城市的关键值编码。

4 个答案:

答案 0 :(得分:0)

我得到了我的解决方案问题是我不会得到直接城市密钥。因为City键位于NewDataSet & Table

之下

所以首先你去NewDataSet,然后是Table键,最后你得到City键。

现在从Dictionary Like

获取数组数据
NSArray * City=[[NSArray alloc]init];

City=[[[xmlDictionary valueForKey:@"NewDataSet"] valueForKey:@"Table"] valueForKey:@"City"];

NSLog(@"%@",City);

在密钥内部传递多个密钥,这就是解决方案。

答案 1 :(得分:-1)

好像你没有在任何地方分配过array1,

你的解决方案就在这里:

   array1 = [[NSMutableArray alloc]init];

   for(NSDictionary * dic in responseArr)
    {
        [array1 addObject:[dic valueForKey:@"City"]];
    }
    NSLog(@"array1 >> %@",array1);

如果您已经分配了array1,请尝试记录[dic valueForKey:@"City"]的值。

答案 2 :(得分:-1)

        array1 = [[NSMutableArray alloc]init];
        for(NSDictionary * dic in responseArr)
        {

            [array1 addObject:[dic objectForKey:@"City"]];
        }

        NSLog(@"array1 >> %@",array1);

试试这个

答案 3 :(得分:-1)

试试这段代码......

   for(int i =0;i<[responseArr count];i++)
   {

     NSString *str = [[responseArr objectAtIndex:i] valueForKey:@"City"];
     [array1 addObject:str];
  }

让我知道它的工作与否!!!

快乐编码!!!