在实施下面的代码时,我得到itemCount = 3
,但它应该是itemCount = 1
因为我指向Banner
> Banner
。有谁知道我为什么得到这个结果和任何修复它?
由于
NSDictionary *xmlDictionary = [XMLReader dictionaryForXMLData:contents error:&parseError];
NSLog(@"xmlDictionary = %@", xmlDictionary);
int itemCount = [[[xmlDictionary objectForKey:@"Banner"] objectForKey:@"Banner"] count];
NSLog(@"itemCount = %d", itemCount);
LOG:
2012-03-02 12:54:49.728 BROADWAY[541:ef03] xmlDictionary = {
Banner = {
Banner = {
date = {
text = "\n 29/02/2012";
};
name = {
text = "\n \n iPhone_Banner_HSB.jpg";
};
text = "\n ";
};
text = "\n";
};
}
2012-03-02 12:54:49.728 BROADWAY[541:ef03] itemCount = 3
答案 0 :(得分:3)
字典的计数是字典中的键数。
顶级词典有一个键:Banner
。
该键的值是包含两个键的字典:Banner
和text
。
第二个Banner
键的值是包含三个键的字典:date
,name
和text
。这是你计算的字典。
答案 1 :(得分:1)
你有一本字典词典。外部字典有一个键“Banner”,其值为内部字典。
内部词典有3个键(日期,名称和文字)。
此行检索内部字典(具有3个值):
// outer inner count
[[[[[xmlDictionary objectForKey:@"Banner"] objectForKey:@"Banner"] count];
答案 2 :(得分:0)
你的字典有密钥:“日期”,“名字”,“文字”。
那是三个。
答案 3 :(得分:0)
这是修复..
在XMLReader.m中,转到这个方法:
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
//comment this line below
//[dictInProgress setObject:textInProgress forKey:kXMLReaderTextNodeKey];
//add the fix code
/*FIX*/
NSString * trimmedString = [textInProgress stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"\n"]];
trimmedString=[trimmedString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
/*FIX*/
}