下载包中的多个项目

时间:2009-11-28 05:30:51

标签: iphone objective-c cocoa-touch xcode

我需要允许用户在一次下载中下载多个图像。此下载将包含一个sql文件和图像。下载完成后,sql将执行,将文本插入sqlite数据库。本文将包括对下载图像的引用。文本和图像在UIWebView中呈现。

在一次下载中下载所有内容的最佳方法是什么?我正在考虑使用捆绑包,因为它可以在运行时加载,但不确定此方案中的任何限制/限制。我已经测试过将bundle放入Documents文件夹,然后访问其中的资源。这似乎在一个简单的测试中工作正常。

1 个答案:

答案 0 :(得分:0)

您通过套接字下载所有内容,套接字只知道字节数,因此捆绑包甚至文件都不会“自然地”传输,服务器端打开文件并对其进行编码并将其发送到连接中,客户端从套接字读取并重建原始文件结构。

假设应用程序有一个用于选择需要传输哪些项目的UI,它可以向服务器请求所有项目,然后服务器可以通过单个连接发送所有项目,并使用您发明的某些分隔,以便iPhone应用程序可以将流分割回单个文件。

或者另一个选择是客户端可以通过非常简单地使用NSURLConnection来为不同的文件执行单独的HTTP请求。

前者听起来像是试图优化后者。您是否已经测试并验证后者太慢/效率低?实施起来肯定更复杂。

您按顺序运行多个HTTP连接存在延迟问题,但是您可以通过并行运行多个下载连接来缓解它 - 例如通过NSOperationQueue限制为2到5并发下载操作。