[Swift]GZip:字符串压缩和解压缩(全平台通用)

定义: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 }

猜你喜欢

转载自www.cnblogs.com/strengthen/p/10844466.html