美文网首页
SDWebImage的内部实现及细节

SDWebImage的内部实现及细节

作者: 小龙88 | 来源:发表于2017-06-02 18:37 被阅读0次

    1.清空缓存

    *删除所有内存缓存的图像

    - (void)clearMemory;

    *删除所有磁盘缓存的图像

    - (void)clearDisk;

    *从磁盘中删除所有过期的缓存图像(默认一周)

    - (void)cleanDisk;

    2.取消所有操作

    [[SDWebImageManager sharedManager] cancelAll];

    3.最大并发数---->6

    4.缓存文件的保存名称如何处理

    拿到图片URL的路径然后对该路径进行MD5加密,加密后的密文作为图片名称

    5.框架内部对内存警告的处理

    内部通过监听通知的方式清理缓存

    6.该框架进行缓存处理的方式

    NSCache

    7.如何判断图片类型

    判断图片类型只匹配图片二进制数的第一个字节

    switch(c) {

    case0xFF:

    return@"image/jpeg";

    case0x89:

    return@"image/png";

    case0x47:

    return@"image/gif";

    case0x49:

    case0x4D:

    return@"image/tiff";

    case0x52:

    //WEBP :是一种同时提供了有损压缩与无损压缩的图片文件格式

    // R as RIFF for WEBP

    if ([data length] <12) {

    return nil;

    }

    //获取前12个字节

    NSString*testString = [[NSStringalloc]initWithData:[datasubdataWithRange:NSMakeRange(0,12)]encoding:NSASCIIStringEncoding];

    //如果以『RIFF』开头,且以『WEBP』结束,那么就认为该图片是Webp类型的

    if ([testStringhasPrefix:@"RIFF"] && [testStringhasSuffix:@"WEBP"]) {

    return@"image/webp";

    }

    8.如何下载图片的

    发送网络请求下载图片:NSURLConnection

    9.请求超时时间:15s

    10.队列中任务的处理方式:FIFO,即先进先出

    相关文章

      网友评论

          本文标题:SDWebImage的内部实现及细节

          本文链接:https://www.haomeiwen.com/subject/mtlufxtx.html