【问题标题】:Decompressing a gzip data stream in Objective-C在 Objective-C 中解压 gzip 数据流
【发布时间】:2011-08-24 08:46:23
【问题描述】:

在 Objective-C 中是否有一种简单、标准的解压缩 gzip 原始数据缓冲区的方法?我在 Apple Developer 文档中找不到任何有用的信息。

如果没有,你能告诉我一个代码演练、一个库,以及任何能让我的生活更轻松的东西吗?我不怕写 C 代码。

【问题讨论】:

    标签: objective-c gzip zlib


    【解决方案1】:

    cocoadev 上有一个 NSData 类别可以处理 zlib 和 gzip 数据: http://www.cocoadev.com/index.pl?NSDataCategory

    如果只需要gzip解压,可以去掉zlib&hash相关方法。
    不要忘记添加链接 libz.dylib(OS X 标准库)构建阶段。

    更新
    正如 cmets 中的 marcos1490 所指出的,原来的 CocoaDev 条目消失了,但是有人扩展了那个 NSData 类别并写了:http://deusty.blogspot.de/2007/07/gzip-compressiondecompression.html

    【讨论】:

    • 网址不再有效。
    • deusty 的新 URL 也不再有效。一个更持久的会在这里:github.com/nicklockwood/GZIP - 但是,这些都不符合问题的标题 - 我正在寻找一个真正的 stream 但这些都只适用于 NSData 并且不适用于大文件, 从文件中分块读取。一个真正的流解决方案示例在这里:developer.apple.com/documentation/accelerate/…
    【解决方案2】:

    你可以试试Ziparchive解压。我试过用它压缩文件,希望另一个能完美运行。

    这里是代码sn-p

    ZipArchive *zip = [ZipArchive alloc];
    [zip UnzipOpenFile:Zip-File-Path];
    [zip UnzipFileTo:Unzip-Folder-Path overWrite:As-You-Wish];
    

    还在构建阶段包含 libz.dylib。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多