压缩plists - NSPropertyListSerialization vs plutil?

时间:2012-05-18 10:42:49

标签: objective-c macos cocoa property-list

我编写了一个简单的命令行工具,特别需要将特定的ini文件转换为属性列表。我正在使用NSPropertyListSerialization将Dictionary写入307kb的二进制属性列表文件。但是,当我将它写入XML并使用 plutil 将其转换为二进制属性列表后,该文件的大小仅为224kb。

我想尽可能多地保存数据,但我也希望远离NSTask。这里的问题是,如何使用plutil实现与代码相同的结果。

1 个答案:

答案 0 :(得分:0)

根据this very old threadplutil将查找相同的子树,例如数组,并在生成的plist中将它们唯一。很久以前NSPropertyListSerialization曾经这样做过,但是这个被删除了,因为这个过程相对较慢,开发人员希望序列化能够尽快运行。

在谷歌搜索后,看起来很容易找到自己做的代码。您可能只需要处理小的差异,或尝试滚动自己的序列化器。