【问题标题】:How to decompress a .gz file in swift?如何快速解压 .gz 文件?
【发布时间】:2015-07-29 13:02:30
【问题描述】:

我正在快速编程,我有一个 NSData 对象,它代表一个 gz 格式的压缩二进制文件。我怎样才能解压它?

谢谢。

【问题讨论】:

  • 请举例说明您到目前为止所尝试的内容以及您遇到的任何错误,如果从那里我们可以采取。

标签: swift compression gzip


【解决方案1】:

查看:https://github.com/1024jp/NSData-GZIP

这应该允许压缩/解压缩。

【讨论】:

  • 除了这很糟糕,因为它不支持增量读取并且一次将所有内容都填充到内存中。但我想它可以作为一个例子。
【解决方案2】:

Apple 提供了一个关于如何压缩/解压缩的示例项目(尽管是文件而不是原始 Data),这可能很有用。

Compressing and Decompressing Files with Swift Stream Compression

【讨论】:

  • 支持gz格式吗?
  • 不,这个例子只是压缩数据,而不是处理文件。尽管我提供了这个“答案”,但我现在非常同意与这个特定问题相关的(当前)-1 分数。
【解决方案3】:

你通过研究它来做到这一点。

快速的谷歌搜索显示.gzgzip 文件格式的文件扩展名。

所以在 Xcode 中搜索“gzip”。看起来有一些错误的命中,但在 Cocoa Touch 中没有明显的内置支持。在 Mac OS 中看起来确实有一个终端命令来 gzip 文件,但这在 iOS 上对我们没有帮助。

返回谷歌:

谷歌搜索“iOS gzip 库的第一个命中显示了一个来自 Nick Lockwood 在github 的库,它可以让您将NSData 转换为/从gzip 格式:

https://github.com/nicklockwood/GZIP

我建议你看看那个。 (Nick Lockwood 拥有许多备受推崇的 iOS 框架,包括出色的 iCarousel。我首先会倾向于他的工作,因为我知道他是一位才华横溢的开发人员,可以创建设计良好的库。

毫无疑问还有其他人。

【讨论】:

  • Nick 的项目是用 Objective-C 实现的,而 asker 指定的是 Swift。是的,你可以桥接,但是 123hal321 链接的项目是用 Swift 编写的;那么,如果不需要,为什么要桥接呢? :)
  • 我的意思是 OP 做了零工作。他们刚刚发布了一个“我该怎么做 x”的问题。如果您没有表现出任何努力,并且可以轻松搜索到它,我倾向于发布 LMGTFY 答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-18
  • 2015-09-10
  • 2011-08-11
相关资源
最近更新 更多