开发者

Processing a binary Plist

开发者 https://www.devze.com 2023-01-26 00:11 出处:网络
Can someone please let me know the difference between normal plist and binary plist and how they开发者_如何学运维 are different processing wise? Is there anything extra I need to do to process a binar

Can someone please let me know the difference between normal plist and binary plist and how they开发者_如何学运维 are different processing wise? Is there anything extra I need to do to process a binary plist?


Binary plists are not stored in human-readable XML like this:

<?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>

Instead, they’re stored using Apple’s private methods, resulting in lower filesize. That example (preferences from Hedgewars) is 378 bytes, but in binary format is 162 bytes.

The good news is that built-in tools, such as NSUserDefaults, will be able to use these formats interchangeably. Using other methods, such as NSArray’s -arrayWithContentsOfFile: method, ought to work as well.

To convert between the two, you can use the plutil app, which is in /usr/bin if installed on your Mac. Here’s an example:

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

That will convert the plist at the given path to XML. Valid formats are (for now) xml1 and binary1.

Be sure to check out the Property List Programming Guide, too.

0

精彩评论

暂无评论...
验证码 换一张
取 消