objective c 要如何正确访问 plist 中的字典数据?

<?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>SE</key>
    <dict>
        <key>l0c0</key>
        <dict>
            <key>x</key>
            <integer>0</integer>
            <key>y</key>
            <integer>0</integer>
            <key>w</key>
            <real>320</real>
            <key>h</key>
            <real>568</real>
        </dict>
    </dict>
</dict>
</plist>

有一个这样的 plist,当我尝试这样访问 l0c0 的时候,总会遇到错误

NSString *path = [[NSBundle mainBundle]pathForResource:@"文件名" ofType:@"plist"];
NSDictionary *modelList = [NSDictionary dictionaryWithContentsOfFile:path];
for(NSDictionary *model in modelList) {
    NSLog(@"%@", model); //只能打印出 SE
    for (NSDictionary *frame in model) { //出错
        NSLog(@"%@", frame);
    }
}

请问要如何才能正确取得 l0c0xy 等数据?

阅读 3.2k
2 个回答

SE这个key对对应的是一个字典,你用数组遍历当然取不出,直接这样取就行了

NSString *path = [[NSBundle mainBundle]pathForResource:@"文件名" ofType:@"plist"];
NSDictionary *modelList = [NSDictionary dictionaryWithContentsOfFile:path];
for(NSDictionary *model in modelList) {
    NSLog(@"%@", model); //只能打印出 SE
    NSDictionary *frame = model[@"l0c0"];
    NSLog(@"%@", frame);    
}

modelList 是个字典,forin 遍历出来的只是 key,还要modelList[key]
.....
字典里边套字典,再遍历一边喽

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题