0

我正在开发一个应用程序,我需要在本地下载大量图像(以便它们可以离线使用)。图像的数量可以是 100 - 10,000。每个图像可能从 100K 到 250K 不等

我可以通过 NSOperationQueue 做到这一点,并且我已经有代码可以完成这项工作,但这个问题更多的是概念性的。我不确定在这里采取的最佳方法是什么。

1) 用户第一次登录后,我是否会立即下载所有图像?根据图像的数量,这可能需要很长时间,如果用户同时关闭应用程序会怎样。我知道在这种情况下后台进程可以花费的时间有限制吗?老实说,我不想在后台做任何事情(即当应用程序关闭时)

2)当用户选择特定类别时,我是否下载图像?如果一个类别有 800 张图片,那么如果用户在所有这 800 张图片下载完成之前选择了另一个类别会发生什么?我总是可以开始下载线程,但是如果用户选择另一个类别,线程会继续运行吗?

3)在“设置”中放一些东西,让用户自己决定。像“总图像:8000”图像可用:2000 和一个按钮说“全部下载”将显示正在发生的事情的 UIProgressView....所以用户可能会等到它全部完成。

还是其他方法?

想法?

4

2 回答 2

0

我只会在用户实际需要对图像做某事时下载图像。如果您预先下载所有图像,您的用户会讨厌您。:)

于 2012-06-20T15:57:12.943 回答
0

据我从您的描述(包括评论)中了解到,我认为最好的方法是在一个线程中下载您的所有图像并使下载过程可恢复。通过这种方式,您将镜像一个远程图像数据库以供离线使用。

这意味着:

  1. 您跟踪已下载的图像;

  2. 每次应用程序启动/恢复时,您都将从您离开的位置开始下载线程;

  3. 您还应该提供一种机制,以便用户在尝试访问尚未下载的图像时得到适当的通知,但我认为这应该没问题(您也可以在某处提供进度指示器)。

于 2012-06-20T16:07:50.633 回答