我有一个如下所示的 plist。读取 plist 的首选方法是什么以及如何将其读入数组?我可以创建一个 NSMutableDictionary,加载此 plist 的内容,将键加载到数组中,然后使用 for 循环读取前 2 个键 - SomeData
和 更多数据
。但我无法解析所有其他键(Key1
、Key2
和 Key3
)。我该怎么做呢?下面粘贴的代码通过顶部 2 个键。 (SomeData
和 MoreData
)。谢谢。
列表:
<?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">
<dict>
<key>SomeData</key>
<array>
<dict>
<key>Key1</key>
<false/>
<key>Key2</key>
<dict>
<key>Key3</key>
<integer>0</integer>
</dict>
</dict>
</array>
<key> MoreData</key>
</dict>
</plist>
代码:
-(IBAction)modifyPlist:(id)sender{
NSLog(@"Listing Keys");
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithContentsOfFile:@"/Users/sureshb/Documents/myprogs/plistMod/com.test.plist"];
NSArray *keys = [dict allKeys];
for (NSString *key in keys){
NSLog(@"%@",key);
}
}
最佳答案
如果我没记错的话,您可以通过以下方式访问这些值:
NSArray *someData = [dict objectForKey:@"SomeData"];
BOOL key1 = [[[someData objectAtIndex:0] valueForKey:@"Key1"] boolValue];
int key2 = [[[[someData objectAtIndex:0] objectForKey:@"Key2"] objectForKey:@"Key3"] intValue];
关于cocoa - 在 Cocoa 中读取 plist 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7631261/