【发布时间】:2019-10-25 11:51:22
【问题描述】:
在 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)
这在一些简单的情况下有效,但在其他情况下肯定会失败。有什么办法可以做到吗?
【问题讨论】:
-
回答this 问题可能会有所帮助。