我正在开发一个应用程序,我需要在本地下载大量图像(以便脱机使用)。图像数量可以是100 - 10,000。每个图像可以从100K-250K
变化我可以通过NSOperationQueue做到这一点,我已经有了代码来完成这项工作,但这个问题更具概念性。我不确定这里最好的方法是什么。
1)我是否在用户首次登录时立即下载所有图像?根据图像的数量,这可能需要很长时间,如果用户同时关闭应用程序会怎么样。我知道在这种情况下后台进程可以花费的时间有限制吗?老实说,我不想在后台做任何事情(即应用程序关闭时)
2)当用户选择特定类别时,我是否下载图像?如果一个类别有800个图像,那么如果用户在所有这800个图像完成下载之前选择另一个类别会发生什么?我总是可以开始下载线程,但如果用户选择另一个类别,线程是否会继续运行?
3)在“设置”中放置一些内容让用户自己决定。像“总图像:8000”图像可用的东西:2000和一个说“全部下载”的按钮,它会显示正在进行的UIProgressView ....所以用户可能会等到完成所有操作。
还是其他一些方法?
思想?
答案 0 :(得分:0)
我只会在用户实际需要对图像执行某些操作时下载图像。如果您提前下载所有图像,您的用户会讨厌您。 :)
答案 1 :(得分:0)
据我所知,包括评论,我认为最好的方法是在线程中下载所有图像,并使下载过程可恢复。通过这种方式,您将镜像远程图像的远程数据库以供脱机使用。
这需要的是:
您可以跟踪已下载的图片;
每次应用程序启动/恢复时,都会从您离开的位置开始下载线程;
您还应提供一种机制,以便在用户尝试访问尚未下载的图像时获得适当的通知,但我认为这应该没有问题(您可能还会提供进度指示器)某处)。