“在iOS上解压缩许多文件的最快方法”或“我还能将其他文件快速下载到我的iOS应用程序中”

时间:2014-01-31 14:30:44

标签: ios iphone zip mapkit

在我的应用中,我希望用户能够下载离线地图内容。

所以我(压缩)将我的所有瓷砖移动到一个zip文件中。 (我使用0压缩) 结构如下:{z / x / y.jpg}

+0
+-0
+--0.jpg
+1
+-1
+--0.jpg
+2
+-2
+--1.jpg

所以基本上会有很多文件用于缩放级别0-15。 (我的测试区约有120,000块瓷砖)。

我现在正在使用https://github.com/mattconnolly/ZipArchive,但之前也尝试了https://github.com/soffes/ssziparchive,两者都很慢。大概需要5个!!在我的iPhone 5S上分钟解压缩文件。

有什么方法可以加快速度吗?还有什么其他的可能性,而不是在一个大的zip文件中下载瓷砖?

编辑: 如何在不需要解压缩的情况下将整个文件夹的内容快速下载到我的iPhone?

感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

JPG很少使用zip进行压缩 - 根据定义,它们已经被压缩了。你应该做的是创建你自己的二进制文件格式,并将你需要的任何元数据与图像(你应该使用非常低质量的数字进行编码,以减小其大小)。

当您下载这些文件时,您可以打开它们,快速将它们读入内存,并根据需要提取数据或图像。

如果您的额外数据是二进制(而不是文本),这将非常快并且几乎没有开销。

PS:我刚刚在PHP Plist class

上绊倒了

答案 1 :(得分:0)

如果有人想知道我是如何结束的: 对于我的用例(MapTiles),我现在使用MBTiles而不是压缩图像。这是一个大数据库文件,如果使用FMDB,超级易读。没有任何需要拆包......

即使我将图像全部放在一个没有任何压缩的二进制文件中,“提取”仍然需要永远!