iOS zlib 压缩解压

最近需要压缩解压问题,查找了一些资料
  1. ZipArchive库,实现对文件的压缩解压缩,网上有资源,可以下载研究一下,对于一些冗余代码可以修改一下。资源链接http://download.csdn.net/detail/deskisme/4440505
  2. 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 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值