目的
GZIP 是一个对 NSData 的类别,提供了简单的 gzip 压缩和解压缩功能。
支持的操作系统与 SDK 版本
- 支持的构建目标 - iOS 12.0 / Mac OS 10.14 (Xcode 10.1)
- 最早支持的部署目标 - iOS 9.0 / Mac OS 10.12
- 最早的兼容部署目标 - iOS 8.0 / Mac OS 10.6
注意:“支持”意味着库已经与该版本进行了测试。“兼容”意味着库应该在这个 iOS 版本上运行(即它不依赖于任何不可用的 SDK 功能),但是不再测试兼容性,可能需要调整或修复错误才能正确运行。
ARC 兼容性
GZIP 类别可以在 ARC 或非 ARC 项目中正常运行,无需修改。
线程安全
所有GZIP方法都可以在多线程中安全地并发调用。
安装
安装GZIP最简单的方法是使用CocoaPods,在您的Podfile中添加以下内容:
pod 'GZIP', '~> 1.3.0'
或者您可以使用Carthage,或者如果您愿意手动安装,将GZIP.xcodeproj拖入您的项目或工作空间,并将GZIP.framework包含在您的目标的相关库中。
NSData 扩展
- (NSData *)gzippedDataWithCompressionLevel:(float)level;
这个方法将应用gzip压缩算法并返回压缩后的数据。压缩级别是一个介于0.0和1.0之间的浮点值,其中0.0表示无压缩,1.0表示最大压缩。0.1的值将提供最快的压缩。如果您提供一个负值,这将会应用默认的压缩级别,大约相当于0.7的值。
- (NSData *)gzippedData;
此方法等同于使用默认压缩级别调用 gzippedDataWithCompressionLevel:
。
- (NSData *)gunzippedData;
此方法将解压缩使用deflate算法压缩的数据并返回结果。
- (BOOL)isGzippedData;
如果数据为gzip编码,此方法将返回YES。