如何读取和解析 plist
Posted
技术标签:
【中文标题】如何读取和解析 plist【英文标题】:How to read and parse a plist 【发布时间】:2013-12-27 20:13:28 【问题描述】:我喜欢阅读和解析 plist 文件,但它不会工作。
这是我的代码:NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:self.plistPath];
dict 总是 (null)
我尝试将内容作为字符串获取,这是我的代码:
NSString *string = [[NSString alloc] initWithData:[NSData dataWithContentsOfFile:self.plistPath] encoding:NSUTF8StringEncoding];
self.plistPath is /tmp/com.apple.audio.hogmode.plist
这是 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/>
</plist>
我做错了什么?
【问题讨论】:
文件内容是什么?你确定是代表字典的属性列表吗? 请显示 self.plistPath 值或您用于创建它的代码。 我已经用你的 plist 内容测试了你的代码,结果是一个空字典,正如人们所期望的那样。 【参考方案1】:想通了!
NSString *error;
NSPropertyListFormat format;
NSDictionary *dict = [NSPropertyListSerialization propertyListFromData:[NSData dataWithContentsOfFile:self.plistPath] mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&error];
【讨论】:
以上是关于如何读取和解析 plist的主要内容,如果未能解决你的问题,请参考以下文章
如何将此 .plist 文件直接解析为 Swift 中的对象?