欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > 【多线程-第四天-SDWebImage的常见面试题-SDWebImage的缓存处理 Objective-C语言】

【多线程-第四天-SDWebImage的常见面试题-SDWebImage的缓存处理 Objective-C语言】

2025/4/19 19:37:03 来源:https://blog.csdn.net/madoca/article/details/147293815  浏览:    关键词:【多线程-第四天-SDWebImage的常见面试题-SDWebImage的缓存处理 Objective-C语言】

一、SDWebImage的缓存处理

通知

1.SDWebImage的常见面试题,我们知道SDWebImage既可以做内存缓存,又可以做磁盘缓存,当做内存缓存的时候,用的是NSCache,

SDWebImage在做磁盘缓存的时候,处理的比我们复杂,复杂在哪儿呢,复杂在它会设置磁盘缓存的缓存时间,缓存时间默认是一周的时间,是一个星期的时间,它会自动的把一个星期以前的图片给删除掉,

好,这件事情怎么实现的,我们可以通过源代码来看一下,源代码的话,看谁,打开,源代码的话,那么多类,不知道看哪个类,那我们先扫一眼,把这个SDWebImage这个项目打开,

通知

项目打开之后,这里边是分成了四个文件夹,

1)SDWebImage

2)WebImage

3)Frameworks

4)Products

我们打开SDWebImage这个文件夹,

通知

打开之后,又分成了四个文件夹,

1)Downloader

2)Cache

3)Utils

4)Categories

我们要看跟缓存相关的技术点的,我们看哪个文件夹,对,Cache,打开这个文件夹,里边的东西很简单,就一个类,SDImageCache,

把它的SDImageCache.h文件点开,看一下,

通知

打开之后,这里边写了一些枚举啊,这些枚举我们曾经见过,

1)SDImageCacheTypeNone,

2)SDImageCacheTypeDisk,

3)SDImageCacheTypeMemory,

通知

就是设置当前下载这些图片,是否缓存了,缓存到哪儿了,磁盘上还是内存里边来,再往下看,

通知

这是这个类,这个类继承自NSObject,再往下看,

通知

定义了好多好多属性啊,

1)shouldDecompressImages:是否要压缩图片,

2)shouldDisableiCloud:是否要禁用iCloud,

3)shouldCacheImagesInMemory:是否要缓存在内存中,

4)maxMemoryCost:最大的成本,看上边的注释,The maximum “total cost” of the in-memory image cache.The cost function is the number of pixels held in memory.

total cost:就是最大的内存缓存的成本,就是缓存成本,就是设置NSCache,使用的这个缓存成本,

通知

5)maxMemoryCountLimit:最大缓存的个数,

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词