cocoa - 在 Cocoa 中读取 plist 文件

标签 cocoa plist

我有一个如下所示的 plist。读取 plist 的首选方法是什么以及如何将其读入数组?我可以创建一个 NSMutableDictionary,加载此 plist 的内容,将键加载到数组中,然后使用 for 循环读取前 2 个键 - SomeData更多数据。但我无法解析所有其他键(Key1Key2Key3)。我该怎么做呢?下面粘贴的代码通过顶部 2 个键。 (SomeDataMoreData)。谢谢。

列表:

<?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/

相关文章:

ios - 在 .plist 文件中使用 .xcconfg 值

ios - 如何使用 Swift 以编程方式或从 Finder/Xcode 手动获取保存在文档中的 .plist?

iphone - 提供 iOS 访问在线文件

java - Android 将变量发送到 drupal

cocoa - 自定义 NSMenu 之类的 View 未正确显示 selectedMenuItemColor

ios - 如何将多个plist文件合并为一个?

ios - 编辑 plist 中的现有数据

objective-c - 如何创建静态 NSRange?

objective-c - cocoa WebView : Load-time when computer idles

cocoa - NSTableView 列无法排序