SDWebImage的内部实现及细节

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的内部实现及细节)