SDWebImage怎么实现图片的缓存机制的?

以tableViewController为例:

  1. 因为每次cell需要显示都需要重新调用-(UITableViewCell)tableView:(UITableView)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{ }方法
  2. 所以每次调用tableView显示行的数据源的方法时,如果需要从网络加载图片,就需要将加载图片的耗时操作放在子线程上执行,从网络上下载的图片可以以键值对的形式保存;在定义可变字典中,将每张图片的唯一的路径作为键,将从网络上下载下来的图片作为值保存在内存缓存中,这样每次滑动tableView cell重用时就直接判断内存缓存中有没有需要的图片;如果有就不需要下载,在没有出现内存警告或者程序员手动清理内存缓存时,就直接从内存缓存中获取图片。
  3. 为了每次退出程序,再次进入程序时,不浪费用户的流量,需要将第一次进入程序时加载的图片保存到本地沙盒缓存文件中,在沙盒中保存的图片数据没有被改动之前,下次开启程序就直接从沙盒的缓存文件中读取需要的显示的图片,并将沙盒缓存文件夹(Cache)中保存的图片保存到内存缓存中,这样用户每次滑动tableView cell重用时直接从内存缓存中读取而不是从沙盒中读取,节约时间。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,461评论 30 472
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,772评论 4 61
  • tableView加载网络图片 需求的效果图 数据结构 获取模型数组 准备模型 .h文件 .m文件 KVC字典转模...
    月下独酌灬阅读 6,586评论 4 18
  • 在我们还很小,很小的时候, 爸妈是我们依赖的港湾, 不离,不舍,不愿远行! 在我们长大后,离家的时候, 爸妈是我们...
    秀秀王子阅读 2,790评论 0 1
  • 1. 现在很多女人都说,宁愿在自行车上笑, 也不愿意在宝马车上哭!呵呵,我才不会 让我的女人哭,毕竟我只有自行车!...
    野生吐槽君阅读 1,859评论 0 1

友情链接更多精彩内容