我很欣赏这里有很多这类问题,但我找不到可行的答案。
简单地说,我需要为所选类别中的所有产品获得一系列价格。
这是我的pList:
<key>Product Category</key>
<dict>
<key>Product 1</key>
<dict>
<key>Image</key>
<string></string>
<key>Large Image</key>
<string></string>
<key>Detail</key>
<string></string>
<key>Price</key>
<integer>100</integer>
</dict>
<key>Product 2</key>
<dict>
<key>Image</key>
<string></string>
<key>Large Image</key>
<string></string>
<key>Detail</key>
<string></string>
<key>Price</key>
<integer>200</integer>
</dict>
</dict>
我不知道如何在这样的层次结构中深入定位。这是我到目前为止的尝试:
NSString *detailPListPath = [[NSBundle mainBundle] pathForResource:@"detail" ofType:@"plist"];
NSDictionary *detailDictionary = [NSDictionary dictionaryWithContentsOfFile:detailPListPath];
currentDetail = [[NSMutableArray alloc] init];
for (id object in [detailDictionary objectForKey:indication]) {
[currentDetail addObject:object];
}
但是currentDetail
只显示了产品1,产品2等。
感谢您提供的任何帮助!
答案 0 :(得分:4)
currentDetail就是这么展示的 产品1,产品2等。
由于NSDictionary
的快速枚举遍历键,因此您将向数组添加键。因此,您的输出显示产品1,产品2等
我需要获得一系列价格 所选类别中的所有产品。
您需要使用这些键(产品1,产品2等)来检索关联的产品词典,然后检索与价格键相关联的值:
NSDictionary *detailDict = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"detail" ofType:@"plist"]];
NSDictionary *categoryDict = [detailDict objectForKey:@"Product Category"];
NSMutableArray *pricesArray = [NSMutableArray arrayWithCapacity:[categoryDict count]];
for (NSString *key in categoryDict) {
[pricesArray addObject:[[categoryDict objectForKey:key] objectForKey:@"Price"]];
}
请注意,生成的pricesArray
处于无特定顺序。