&引用;在iOS上解压多个文件的最快方法;或;除此之外,我如何才能将许多文件快速下载到iOS应用程序中;

&引用;在iOS上解压多个文件的最快方法;或;除此之外,我如何才能将许多文件快速下载到iOS应用程序中;,ios,iphone,zip,mapkit,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块瓷砖) 我现在正在使用,但以前也试用过,而且都很慢。大约需要5分钟!!在我的iPhone 5S上解压缩文件的分钟数 我有什么办法可以加快速度吗?除了在一个大的zip文

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

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

+0
+-0
+--0.jpg
+1
+-1
+--0.jpg
+2
+-2
+--1.jpg
基本上,对于0-15级的缩放,会有很多文件。(我的测试区域大约有120.000块瓷砖)

我现在正在使用,但以前也试用过,而且都很慢。大约需要5分钟!!在我的iPhone 5S上解压缩文件的分钟数

我有什么办法可以加快速度吗?除了在一个大的zip文件中下载瓷砖,还有什么其他的可能性

编辑: 如何将整个文件夹的内容快速下载到iPhone中,而无需解压缩?


感谢您的帮助

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

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

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


注:我刚刚被一个

绊倒了,如果有人想知道我的结局如何: 对于我的用例(MapTiles),我现在使用MBTiles而不是压缩图像。如果使用FMDB,它是一个大的数据库文件,并且非常容易阅读。不需要任何打开包装的东西


即使我把所有的图像都放在一个二进制文件中而不进行任何压缩,“提取”仍然要花很长时间

我没有尝试使用zip压缩文件,只是将它们放在一个文件中,这样我只需要下载一个文件。我甚至试着不用压缩就把它压缩。。。不是在加速事情。。。你对如何将文件夹的内容快速下载到我的iPhone有什么其他想法吗?我刚刚告诉过你。定义自己的二进制格式,将数据打包到一个或多个文件中。想象一个C结构,其中一个图像是结构中的最后一个值,字段正好位于它的长度之前。读入结构直到图像,现在知道长度,读入图像,现在文件指针指向下一个结构。如果你有一个很大的文件,你可以在它到达的时候在后台解码每个“结构”——无需等待整个文件。事实上,你不需要在两边都有一个文件,因为你可以将数据流下来。难道没有更简单的解决方案吗?我看到这种方法的主要问题是,我必须编写一个小工具来创建这些二进制文件。这使得为客户维护它们变得更加困难。。。难道没有一种格式是相同的,并且是开源的,使用现有的工具来创建和解压它吗?比如DMG文件?!?我只是在网上没有找到任何关于如何在iOS上装载/提取它们的信息…:(有python代码可以创建二进制plists。因此,如果您为其提供一组字典,其中图像是字典中的一个数据块,它将压缩到一个小尺寸,并尽可能开放源代码。您可以直接在iOS中打开它。不确定流式处理(实时解码)。您不能将二进制数据放入json字典中,因此如果您想要已知格式,请使用二进制plist。