像这样的响应数组
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中的值。
错误日志
此类不符合关键城市的关键值编码。
答案 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];
}
让我知道它的工作与否!!!
快乐编码!!!