开发中非常常用的就是就是图片下载,我们常用的就是SDWebImage,但是作为开发人员,不仅要能会用,还要知道其原理。本文就会介绍多图下载的实现。
本文中的示例Demno地址,下载后项目位于iOS_Demo/09-多图片多线程下载
1 - 问题
开篇我就先将多图下载过程中出现的问题摆出来,让我们能够一一克服
。
1:下载过程要放到子线程中,否则会导致UI线程卡顿
2:图片会重复下载,我们不仅要把下载完的图片放到内存中,还要把下载队列也缓存起来,否则可能图片没有下载完,会多次创建下载队列
3:沙盒缓存,放到哪里,根据下面对沙盒文件的介绍我们需要把图片放到Library/Caches目录下。
Document : iTunes会备份Library : 1:Caches:缓存文件,不会清除 2:Preferences:偏好设置,保存账号信息 tmp :临时路径,随时会被删除,临时的不是重要的数据
下载流程图