В 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)
Это работает в нескольких простых случаях, но определенно не работает в других. Есть ли способ заставить эту работу?