`

iphone客户端解压gzip

 
阅读更多

 

-(NSData *)uncompressZippedData:(NSData *)compressedData  //解压缩gzip

{  

 

    if ([compressedData length] == 0) return compressedData;  

 

    unsigned full_length = [compressedData length];  

 

    unsigned half_length = [compressedData length] / 2;  

    NSMutableData *decompressed = [NSMutableData dataWithLength: full_length + half_length];  

    BOOL done = NO;  

    int status;  

    z_stream strm;  

    strm.next_in = (Bytef *)[compressedData bytes];  

    strm.avail_in = [compressedData length];  

    strm.total_out = 0;  

    strm.zalloc = Z_NULL;  

    strm.zfree = Z_NULL;  

    if (inflateInit2(&strm, (15+32)) != Z_OK) return nil;  

    while (!done) {  

        // Make sure we have enough room and reset the lengths.  

        if (strm.total_out >= [decompressed length]) {  

            [decompressed increaseLengthBy: half_length];  

        }  

        strm.next_out = [decompressed mutableBytes] + strm.total_out;  

        strm.avail_out = [decompressed length] - strm.total_out;  

        // Inflate another chunk.  

        status = inflate (&strm, Z_SYNC_FLUSH);  

        if (status == Z_STREAM_END) {  

            done = YES;  

        } else if (status != Z_OK) {  

            break;  

        }  

 

    }  

    if (inflateEnd (&strm) != Z_OK) return nil;  

    // Set real length.  

    if (done) {  

        [decompressed setLength: strm.total_out];  

        return [NSData dataWithData: decompressed];  

    } else {  

        return nil;  

    }  


----------
调用

NSString *path = [[NSBundle mainBundle] pathForResource:@"Document.pdf.gz" ofType:nil];

 

NSData *zipData = [NSData dataWithContentsOfFile:path];

NSData *pdfData = [self uncompressZippedData:zipData];

//获得document目录

NSArray *docpath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *pathname = [docpath objectAtIndex:0];

NSString *pdfPathname =  [pathname stringByAppendingPathComponent:@"1.pdf"];

[pdfData writeToFile:pdfPathname atomically:YES];


分享到:
评论

相关推荐

    异速联iPhone客户端

    异速联iPhone客户端是一款专为苹果用户设计的移动应用程序,旨在提供高效、便捷的数据访问和文件同步服务。这款客户端让iPhone用户能够随时随地连接到异速联服务器,享受跨平台的数据共享和协作体验。 异速联技术的...

    Iphone客户端设置说明.docx

    在本篇《Iphone客户端设置说明》中,我们将详尽探讨如何在iPhone设备上下载并配置客户端应用程序,以便用户能够顺畅地使用各种服务。本文主要分为三个部分:客户端下载、软件设置以及客户端界面功能介绍。 一、...

    安卓去尾巴方法 可改成来自iphone客户端

    ### 安卓去尾巴方法 可改成来自iPhone客户端 在社交网络中,用户常常希望个性化自己的发布内容,比如更改发布设备的信息。对于安卓用户来说,一个常见的需求是将自己的发布设备显示为“来自iPhone客户端”,这既是...

    ios:新浪微博iphone客户端

    这是一个ios的新浪微博iphone版的客户端,代码成功运行还需要一个appkey,请大家到新浪微博开发平台申请一个appkey,然后加入到程序文件中名为Url.h的文件中,找到一个apply_url,将里面的“AppKey”替换成你所申请...

    WAPA_iPhone客户端

    WAPA_iPhone客户端

    CCTV视频手机版iPhone客户端

    【CCTV视频手机版iPhone客户端】是一款专为iPhone用户设计的移动应用,它集成了丰富的视频资源,让用户随时随地都能享受观看CCTV精彩节目的便利。作为中国领先的视频手机媒体,该客户端提供了全面、及时的电视节目...

    OSX服务端+iphone客户端 网络通信小程序

    在本文中,我们将深入探讨如何在OSX服务端与iPhone客户端之间实现网络通信,主要关注CFNETWORK和NSStream这两个关键的iOS及Mac OS X网络编程框架。这些技术使得应用程序能够处理HTTP、FTP、TCP/IP和其他网络协议,...

    新浪微博 android 2.5.0 显示 iphone 客户端

    新浪微博 android 2.5.0 显示 iphone 客户端

    sina微博iphone客户端

    sina微博iphone客户端,有需要的同学可以看看用来学习一下

    锐明视讯手机苹果软件 锐明视讯iphone 客户端

    锐明视讯手机苹果软件 锐明视讯iphone 客户端

    蓝牙小车iPhone客户端

    《蓝牙小车iPhone客户端开发详解》 在移动设备与物联网技术日益融合的今天,蓝牙小车作为科技玩具和教育工具的代表,深受爱好者和开发者喜爱。本文将详细讲解如何使用iPhone客户端来控制蓝牙小车,实现小车的左右...

    123站长 QQ说说 显示iphone客户端 安卓客户端 平板电脑客户端.zip

    标题中的“123站长 QQ说说 显示iphone客户端 安卓客户端 平板电脑客户端”指的是一个与QQ社交平台相关的应用或插件,可能是由123站长开发的,旨在帮助用户在不同的设备上(如iPhone、Android手机以及平板电脑)展示...

    基于iOS的新浪微博iPhone客户端的设计与实现

    本资料主要内容是:基于iOS的新浪微博iPhone客户端的设计与实现的全面讲解。可作为毕业设计的资料。

    开源中国iPhone客户端源码

    标题 "开源中国iPhone客户端源码" 提供了一个关键信息,即这是一个与开源中国社区相关的iOS应用的源代码。开源中国是中国最大的开源技术社区,致力于推广和分享开源软件、开源项目,以及提供开发者交流的平台。这个...

    iphone手机办公客户端下载

    "移动办公iPhone版客户端部署说明.doc"文件,显然是为初次使用该客户端的用户提供了一份详细的安装和配置指南。这份文档可能涵盖了如何从App Store下载应用、安装过程、设置账户、同步公司数据、以及解决常见问题等...

    论文管理系统iPhone客户端_(毕业设计)_Theses-for-iPhone.zip

    论文管理系统iPhone客户端_(毕业设计)_Theses-for-iPhone

    微信iPhone客户端 v4.3.2.6.ipa

    微信iPhone客户端 v4.3.2.6.ipa

    iphone客户端源码

    《深入探索iPhone客户端源码解析》 在移动应用开发领域,iPhone客户端开发是不可或缺的一部分,尤其对于初学者和开发者来说,理解并掌握其源码至关重要。本篇文章将围绕"iphone客户端源码"这一主题,详细解析相关...

    基于IOS的新浪微博iPhone客户端的设计与实现毕业论文.doc

    本文将详细探讨如何基于iOS操作系统开发一款功能全面的新浪微博iPhone客户端,并从中体现出设计者对于开放平台的理解、对移动开发技术的掌握以及创新的实践能力。 文章首先介绍了SNS的概念和开放平台的重要性。开放...

Global site tag (gtag.js) - Google Analytics