问题描述
<?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); }}
请问要如何才能正确取得l0c0、x、y等数据?
问题解答
回答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); }