我有一个像这样的plist:
<dict>
<key>New item</key>
<dict>
<key>document</key>
<string>driving licence</string>
<key>Overview</key>
<string>a driving licence is required.......</string>
</dict>
如果我想获得对象,我会写这样的东西:
myString = [somedictionary objectForKey:@"Overview"];
如果我想从我的plist获得“概述”怎么办? 我希望它很清楚.....请不要投反对票....我还在学习!; - )
编辑版本:
最好更具体:
我有这个代码
for (NSDictionary *playDictionary in playDictionariesArray) {
Play *play = [[Play alloc] init];
play.name = [playDictionary objectForKey:@"playName"];
这是Apple示例代码: http://developer.apple.com/library/ios/#samplecode/TableViewUpdates/Introduction/Intro.html
在此示例中,字符串播放在标题部分返回播放的名称,但我想要 修改它并在标题中获取“Key”(在这种情况下将是“PlayName”。
感谢每一个人:这就是我如何修复它:
NSMutableArray *anArray = [[NSMutableArray alloc] init];
[anArray addObject:@"Overview"];
[anArray addObject:@"pre-requirements"];
[anArray addObject:@"where"];
[anArray addObject:@"what"];
//Use a for each loop to iterate through the array
for (NSString *s in anArray) {
Play *play = [[Play alloc] init];
play.name = s;
答案 0 :(得分:17)
您可以使用[dict allKeys]
获取字典中所有键的数组。您可以使用[dict allKeysForObject:object]
获取其值为特定对象的所有键的数组。您可以在循环中逐个处理密钥,如下所示:
for (NSString *key in dict) {
...
}
答案 1 :(得分:3)
尝试这个,如果有效,请告诉我..
NSMutableArray* result = [NSMutableArray array];
for (NSString* key in dictionary) {
[result addObject:key];
// write to a dictionary instead of an array
// if you want to keep the keys too.
}
return result;
答案 2 :(得分:0)
如果您想要获取给定对象的密钥,可以尝试以下方法:
- (NSArray *)allKeysForObject:(id)anObject
像这样使用它:
myString = [[myDict allKeysForObject:@"a driving licence is required......."] objectAtIndex:0];
注意它返回一个NSArray,因为你可以为指定的对象提供多个键。