Сжатие и распаковка zlib (RFC 1950) с использованием функций DEFLATE (RFC 1951) - PullRequest
1 голос
/ 25 октября 2019

В iOS 13 и macOS 10.15 Apple поставляет несколько полезных функций для сжатия и распаковки в одну строку кода.

Однако они поддерживают только DEFLATE (RFC 1951), и у меня есть данные, сжатые с помощью ZLIB (RFC 1950).

Я экспериментально обнаружил, что если я удаляю первые 2 байта, то распаковка работает:

let output = try NSData(data: input[2...]).decompressed(using: .zlib)

Это надежный метод?

Для сжатия я пробовалдобавление 2-байтового заголовка:

let output = try Data([0x78, 0x9c]) + input.compressed(using: .zlib)

Это работает в нескольких простых случаях, но определенно не работает в других. Есть ли способ заставить эту работу?

...