Compactando plists - NSPropertyListSerialization vs plutil?
-
11-12-2019 - |
Pergunta
Escrevi uma ferramenta simples de linha de comando para uma necessidade especial de converter um arquivo ini específico em uma lista de propriedades.estou usando NSPropertyListSerialization
para gravar o Dicionário em um arquivo de lista de propriedades binárias de 307kb.Porém quando escrevo em XML e depois converto usando plutil para uma lista de propriedades binárias, o arquivo tem apenas 224 KB.
Gostaria de salvar o máximo de dados possível, mas também quero ficar longe de NSTask
.A questão aqui é: como eu alcançaria os mesmos resultados do código que obtenho usando plutil
.
Solução
De acordo com esse tópico muito antigo, plutil
irá procurar subárvores idênticas, como arrays, e excluí-las no plist resultante. NSPropertyListSerialization
costumava fazer isso há muito tempo, mas foi removido porque o processo é relativamente lento e os desenvolvedores esperam que a serialização funcione o mais rápido possível.
Depois de pesquisar no Google, não parece fácil encontrar código para fazer isso sozinho.Talvez você precise apenas lidar com a pequena diferença de tamanho ou tentar criar seu próprio serializador.