最近需要压缩解压问题,查找了一些资料
- ZipArchive库,实现对文件的压缩解压缩,网上有资源,可以下载研究一下,对于一些冗余代码可以修改一下。资源链接http://download.csdn.net/detail/deskisme/4440505
- iOS zlib文件主要有deflate算法压缩
3.在我所需要的项目中需要解压缩从服务器中请求到的NSData数据(根据自己的情况选择),所有创建了一个NSData类extension 实现对请求到的data的解压缩,此demo代码中有压缩和解压缩两种方法。
可以比较一下zlib 和gzip的区别,压缩率等。(PS在我们查询资源的时候,对于一些东西,更重要的要自己验证一下。fighting^_^)
#import <Foundation/Foundation.h>
@interface NSData (STUnzipArchive)
// ZLIB
- (NSData *) zlibInflate;
- (NSData *) zlibDeflate;
// GZIP
- (NSData *) gzipInflate;
- (NSData *) gzipDeflate;
@end
#import "NSData+STUnzipArchive.h"
#include <zlib.h>
@implementation NSData (STUnzipArchive)
- (NSData *)zlibInflate
{
if ([self length] == 0) return self;
NSUInteger full_length = [self length];
NSUInteger half_length = [self length] / 2;
NSMutableData *decompressed = [NSMutableData dataWithLength: full_length + half_length];
BOOL done = NO;
int status;
z_stream strm;
strm.next_in = (Bytef *)[self bytes];
strm.avail_in = (unsigned)[self length];
strm.total_out