有人可以让我知道普通plist和二元plist之间的区别以及它们如何处理不同?我需要做些什么来处理二进制plist吗?
答案 0 :(得分:3)
二进制plist不存储在人类可读的XML中,如下所示:
<?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>SUFeedURL</key>
<string>http://www.hedgewars.org/download/appcast.xml</string>
<key>SUHasLaunchedBefore</key>
<true/>
<key>SULastCheckTime</key>
<date>2010-11-15T22:00:36Z</date>
</dict>
</plist>
相反,它们使用Apple的私有方法进行存储,从而降低了文件大小。那个例子(来自Hedgewars的偏好)是378个字节,但是二进制格式是162个字节。
好消息是内置工具(例如NSUserDefaults
)将能够互换使用这些格式。使用其他方法,例如NSArray
的-arrayWithContentsOfFile:
方法,也应该可以正常工作。
要在两者之间进行转换,您可以使用plutil
应用,如果安装在Mac上/usr/bin
。这是一个例子:
plutil -convert xml1 /path/to/your/plist.plist
这会将给定路径上的plist转换为XML。有效格式(目前为xml1
和binary1
。