2013-10-20 109 views
0

在服务器端,会有很多文本和图像,我想下载。 问题是我不想单独获取这些东西,我想将它们打包到一个文件中,以便利用暂停和恢复功能。 我应该在服务器端压缩它们并在移动端解压缩文件吗? 有没有我可以用来在手机端解压缩的API?IOS下载多个文件

我不确定我的想法是否正确。这是做这种事情的常见方式吗?谢谢。

回答

0

关于图像,我们经常会单独下载它们,只是在下载东西时更新UI,而不是强迫用户等待所有下载。或者懒惰的下载很不错(例如UIImageView类别,例如SDWebImageUIImageView+WebCache),可以在需要时有效地下载图像,这样用户就可以在不需要等待下载任何内容的情况下使用应用程序。

关于文本,除非它们很大,你可以一起下载它们。不过,我认为帖子人会倾向于一些JSON格式的响应,它会以一些很好的,易于使用的格式返回文本文件。有一点(比如,联合的JSON超过10万),但是,将文本文件组合在一起会导致收益递减点,在这种情况下,您可能需要进行单独的下载。

在提供有意义的建议之前,我们需要更多关于应用程序的功能和数据细目(单个文本文件有多大,多少等)的背景知识。但除非应用程序根本无法正常工作,直到所有内容都下载完毕,否则我会倾向于单独下载图像,以及一些不错的JSON格式单行文本。

让我们假设你有一系列产品的文字描述,一个与每个产品相关的图像。然后,你可能有一个JSON看起来像:

[ 
    { 
     "id": 1, 
     "description": "This product is ...", 
     "image_url": "http://www.yourserver.com/images/img001.png" 
    }, 
    { 
     "id": 2, 
     "description": "This different product is ...", 
     "image_url": "http://www.yourserver.com/images/img002.png" 
    }, 
    { 
     "id": 3, 
     "description": "This third product is ...", 
     "image_url": "http://www.yourserver.com/images/img003.png" 
    }, 
    { 
     "id": 4, 
     "description": "This last product is ...", 
     "image_url": "http://www.yourserver.com/images/img004.png" 
    } 
] 

您的应用程序可能下载JSON(在这种情况下,将拥有所有的文本字符串和一堆图像的URL的),然后现在,在UI ,并在它需要显示图像,使用UIImageView类别的SDWebImage更新UIImageView像这样的image

[cell.imageView setImageWithURL:[NSURL URLWithString:imageUrlString] 
       placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 
+0

我已经使用SDWebImage。 我的问题是这样的: 说我的应用程序是一个在线magzine查看器。用户可以在线阅读电子杂志,以便SDWebImage可以发挥作用。 但是,我想提供一个功能来使下载的杂志。一旦下载完成,用户可以离线阅读。所以问题是我应该如何处理这个问题。我正在考虑将杂志的文本和图像封装到一个zip文件中,用户可以直接下载该文件,而在移动端,我的应用将其解压并将数据保存到相关的数据库表中。这是做这件事的正确方法吗? – user2053760

+0

我已经看到了下载整版的第一个模型(很多杂志都这样做)以及检索即用和可选检索一切为脱机模型(一堆报纸做这个)。我认为后者更优雅,但前者显然更容易。在zip库方面,请参阅[这个问题](http://stackoverflow.com/questions/11333399/download-and-unzip-file-in-ios)。 – Rob