如何在swift 3中压缩数据?
问题描述:
我在swift 3文件管理器中有一些文件我想上传它们,但是当我用它们将它们转换为base 64时,它们的大小将非常大!所以我想压缩数据之前转换成基地64如何在swift 3中压缩数据?
这里是我的代码转换
for i in 0...(rows?.count)! - 1 {
let filePath = filesurl[fileManagerViewController.selectedFileIndex[i]]
do {
let fileData = try Data.init(contentsOf: filePath)
let fileStream:String = fileData.base64EncodedString(options: NSData.Base64EncodingOptions.init(rawValue: 0))
fileManagerViewController.upupload.append(fileStream)
} catch {
print(error.localizedDescription)
}
}
我用
let compressedData = fileData(UF_COMPRESSED)
但并没有为我工作,所以请大家帮我压缩文件文件,然后将它们转换成基本64进行上传
答
这里的libcompression
包装Swift 3编写。 https://github.com/mw99/SwiftDataCompression
斯威夫特libcompression包装作为一个扩展的数据类型(ZLIB,LZFSE,LZMA,LZ4,放气,RFC 1950,RFC-1951)
所以,你可以压缩你的数据一样, :
let fileData = try Data.init(contentsOf: filePath)
let compressedData = fileData.compress(withAlgorithm: .LZFSE)