Сжатие списков – NSPropertyListSerialization против plutil?
-
11-12-2019 - |
Вопрос
Я написал простой инструмент командной строки для особых случаев преобразования определенного INI-файла в список свойств.Я использую NSPropertyListSerialization
записать словарь в двоичный файл списка свойств размером 307 КБ.Однако когда я пишу его в XML и после преобразования с помощью плютил в списке двоичных свойств размер файла составляет всего 224 КБ.
Я хотел бы сохранить как можно больше данных, но я также хочу держаться подальше от NSTask
.Вопрос здесь в том, как мне добиться тех же результатов с помощью кода, что и при использовании plutil
.
Решение
В соответствии с это очень старая тема, plutil
будет искать идентичные поддеревья, такие как массивы, и уникализировать их в результирующем списке. NSPropertyListSerialization
Раньше это делалось давным-давно, но это было удалено, поскольку процесс относительно медленный и разработчики ожидают, что сериализация будет работать как можно быстрее.
После поиска в Google кажется, что найти код, позволяющий сделать это самостоятельно, будет непросто.Возможно, вам просто придется иметь дело с небольшой разницей в размерах или попытаться создать собственный сериализатор.