如何在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)