如何获取此plist的内容?
我对不同的元素以及如何访问它们感到有点困惑。
如何访问这些词典和词典中的词典?
如果我想首先复制这些数据怎么样呢?它会不会一直提高性能,而不是总是从plist中读取?
如何通过结构级别将所有这些数据存入我的应用程序?
谢谢
答案 0 :(得分:10)
读取属性列表的最简单方法是在NSDictionary
上使用便捷方法(如果您的根元素是数组,则为NSArray
),如下所示:
NSString* filePath = [[NSBundle mainBundle] pathForResource:@"FileName"
ofType:@"plist"];
NSDictionary* plist = [NSDictionary dictionaryWithContentsOfFile:filePath];
从那里plist文件只是一个普通的字典。使用objectForKey:
等获取值。为了更快地访问深层子节点,您可以使用valueForKeyPath:
,例如:
NSString* name = [plist valueForKeyPath:@"mainDictionary.name"];
对于plist文件的更复杂操作,您应该使用具有多个类方法的NSPropertyListSerialization
,以便更精细地访问读取和写入属性列表文件。
答案 1 :(得分:1)
use this :
NSDictionary *dic1 = [[NSDictionary alloc] initWithContentofFile:yourFilePathhere];
// return main dictionary
NSDictionary *dic2 = [dic1 objectForKey:mainDictionary];
答案 2 :(得分:0)
你应该查看NSPropertyListSerialization class,这使解析plists相对简单。
以下是一些示例代码:http://iphoneincubator.com/blog/tag/nspropertylistserialization
答案 3 :(得分:0)
let filePath:String = NSBundle.mainBundle().pathForResource("infoList_English", ofType: "plist")!
let postDictionary : NSDictionary = NSDictionary(contentsOfFile: filePath)!
print(postDictionary)