zoukankan      html  css  js  c++  java
  • 多图片下载综合案例-磁盘缓存处理

    思路:

    (1)在显示图片前,先检查是否有内存缓存;

    (2)有内存缓存,直接使用;

    (3)如果没有内存缓存,再去检查是否有磁盘缓存;

    (4)有磁盘缓存,直接使用 + 保存 一份到内存中(以后使用方便)

    (5)没有磁盘缓存,就判断是否已经在下载了,如果没有下载,就开启线程下载;如果已下载,就下载图片并显示出来 + 保存一份到内存中 + 保存到磁盘

    其中,内存有三种:

      Doc:不允许,否是上架会被拒

      Lib:

        cache:图片缓存放在这里

        偏好设置

      tmp:临时存储路径,随时可能被删除

    //获取缓存的路径并缓存图片:
    - (void)getCachePath:(NSString *)imageUrl {
        //获取文件的名称
        NSString *fileName = [imageUrl lastPathComponent];  //得到该路径的最后一个节点
        //获取cache路径
        NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
        //拼接路径
        NSString *fullPath = [cachePath stringByAppendingString:fileName];
        //获取图片的数据
        NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:imageUrl]];
        //图片数据写入缓存中
        [imageData writeToFile:fullPath atomically:YES];
    }
  • 相关阅读:
    【刷题-LeetCode】165 Compare Version Numbers
    python 22 内置模块2
    python 21 内置模块
    python 20 模块,包,及开发目录规范
    python 19
    python 18 三元,生成,递推
    定时抓取数据并存入数据库
    抓取财报数据
    金币
    交换座位
  • 原文地址:https://www.cnblogs.com/lyz0925/p/11498201.html
Copyright © 2011-2022 走看看