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

浏览:57日期:2023-11-15

问题描述

<?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等数据?

问题解答

回答1:

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); }

相关文章: