定义:GzipSwift is a framework with an extension of Data written in Swift. It enables compress/decompress gzip using zlib.
安装方法:
pod 'GzipSwift'
使用示例:
1 import Gzip 2 3 // gzip 4 let compressedData: Data = try! data.gzipped() 5 let optimizedData: Data = try! data.gzipped(level: .bestCompression) 6 7 // gunzip 8 let decompressedData: Data 9 if data.isGzipped { 10 decompressedData = try! data.gunzipped() 11 } else { 12 decompressedData = data 13 }
字符串压缩和解压缩:
1 //MARK:字符串GZip压缩 2 func compress(_ str:String) -> String 3 { 4 //使用base64编码,转换成Data类型 5 if let data:Data = str.data(using: String.Encoding.utf8) 6 { 7 //GZip压缩 8 let optimizedData:Data = try! data.gzipped(level: .bestCompression) 9 //Data转换为String 10 return optimizedData.base64EncodedString() 11 } 12 return String() 13 } 14 15 //MARK:字符串GZip解压缩 16 func decompress(_ str:String) -> String 17 { 18 //使用base64编码,转换成Data类型 19 let data:Data = Data(base64Encoded: str) ?? Data() 20 //判断是否为GZip压缩的Data 21 if data.isGzipped { 22 //GZip解压缩 23 let decompressedData: Data = try! data.gunzipped() 24 //Data类型转换为String 25 return String(data: decompressedData , encoding: String.Encoding.utf8) ?? String() 26 } 27 return String() 28 }