我把它读成临时词典就好了。
我想知道的是,如果有一种简单的方法来获取字符串子项(实际上是数组中的单个元素,正如您所看到的那样)。
我最初尝试过objectAtIndex,但当然是返回一个数组,而不是字符串值。我接下来尝试使用NSEnumerator(objectEnumerator),然后使用objectAtIndex:0来获取有效的字符串。
但我真的希望有更简单的方法来做到这一点。
编辑:澄清我正在尝试做什么。
我想使用键值(例如“All Items”)来填充tableview cell.text,然后使用字符串值(例如“find.png”)以帮助通过UIImage imageNamed填充cell.image: 。我不希望使用硬编码值(例如objectForKey:@“All Items”),这样我就可以更改plist中的数据而不需要更改代码。
答案 0 :(得分:2)
您需要在字典上调用objectForKey:
以获取其中一个数组,然后在数组上调用objectAtIndex:0
(或只是lastObject
)来获取字符串。您可以将这两个方法调用组合成一行代码,例如:
[[dictionary objectForKey:@"All Items"] lastObject];
答案 1 :(得分:0)
您可以使用字典的快速枚举:
for (id key in dict) {
NSArray *array = [dict objectForKey:key];
NSLog(@"key: %@, value: %@", key, [array objectAtIndex:0]);
}
答案 2 :(得分:0)
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
// get documents path
NSString *documentsPath = [paths objectAtIndex:0];
// get the path to our Data/plist file
NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"DecisionName.plist"];
NSLog(@"Error in dictionary");
NSLog(@"HELLO");
NSMutableDictionary *plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath];
NSArray *testChoice = [[NSArray alloc] initWithArray:[plistDict objectForKey:selectedDecision]];
self.choices = [testChoice objectAtIndex:0];
self.preferences = [testChoice objectAtIndex:1];
This code will be helpful which use to get values from plist having following structure......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<array>
<string>Toyota</string>
<string>Honda</string>
</array>
<array>
<string>Speed</string>
<string>Reliability</string>
<string>Price</string>
</array>
</array>
</plist>