2010-11-18 94 views
2

有人能让我知道正常plist和二进制plist之间的区别以及它们如何处理不同明智?有什么额外的我需要做处理二元plist?处理二进制Plist

回答

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> 

相反,他们使用苹果的私有方法存储的,从而降低了文件大小。该示例(来自Hedgewars的偏好)是378字节,但是二进制格式是162字节。

好消息是,内置工具(如NSUserDefaults)可以互换使用这些格式。使用其他方法,如NSArray-arrayWithContentsOfFile:方法,应该也适用。

要在两者之间进行转换,您可以使用plutil应用程序,该应用程序在/usr/bin中(如果安装在Mac上)。下面是一个示例:

plutil -convert xml1 /path/to/your/plist.plist 

这会将给定路径上的plist转换为XML。有效格式是(现在)xml1binary1

请务必查看Property List Programming Guide