gpt4 book ai didi

ios - 原生 zlib inflate/deflate for swift3 on iOS

转载 作者:搜寻专家 更新时间:2023-10-31 08:10:31 24 4
gpt4 key购买 nike

我希望能够膨胀/收缩 Swift3 数据结构。我找到了 GzipSwift ,但不清楚我如何将它提供给我的 iOS 应用程序。我尝试过的天真的事情包括:

  1. Data+Gzip.swift 文件复制到我自己的项目中。然后,这会提示所述文件顶部的 import zlib。我认为这与同一来源的 zlib 目录中的模块映射文件有关。但我不确定在我自己的项目中重新创建什么或如何重新创建它们。

  2. 从 github 克隆存储库,打开 XCode 并内置(基本上按下运行按钮)。然后尝试将其作为链接库或框架添加到我自己的项目中。我很确定只选择存储库的顶级目录不是我想要做的,但我不知道还能尝试什么。

我在那里找到了一些其他代码,但它似乎过时并且相对于 Swift2。

最佳答案

Swift 5 使用压缩 实现。

我花了几天时间才意识到我必须删除压缩数据的前 2 个字节。希望它可以帮助其他人。

import Foundation
import Compression

func decompress(_ data: Data) -> String {
let size = 8_000_000
let buffer = UnsafeMutablePointer<UInt8>.allocate(capacity: size)
let result = data.subdata(in: 2 ..< data.count).withUnsafeBytes ({
let read = compression_decode_buffer(buffer, size, $0.baseAddress!.bindMemory(to: UInt8.self, capacity: 1),
data.count - 2, nil, COMPRESSION_ZLIB)
return String(decoding: Data(bytes: buffer, count:read), as: UTF8.self)
}) as String
buffer.deallocate()
return result
}

关于ios - 原生 zlib inflate/deflate for swift3 on iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39648121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com