【多线程-第四天-自己模拟SDWebImage的下载图片功能-缓存管理 Objective-C语言】

一、我们再来做下载操作管理类的第二个任务——缓存管理

1.下载操作管理类,第二个任务,它要去管理缓存,管理缓存的时候,既要管理内存缓存,又要管理磁盘缓存,之前,下载操作管理类,已经完成了下载这件事情,下边,我们回来,

先不考虑磁盘缓存呢,先考虑内存缓存,之前我们做过内存缓存,内存缓存的话,我们要做一件什么事儿,创建一个缓存池,

// 图片缓存池

@property(nonatomic,strong)NSMutableDictionary *imageCache;

OK,下边,去懒加载,去初始化,

- (NSMutableDictionary *)imageCache{

if(_imageCache == nil){

_imageCache = [NSMutableDictionary dictionaryWithCapacity:10];

}

return _imageCache;

}

图片的缓存池,就有了,下边我们要,当图片下载完成之后,我们应该把图片缓存起来,往下走,

这是不是下载图片,当finishedBlock的时候,图片是不是下载完了,图片下载完了之后,下边我们就要去,

// 缓存图片

self.imageCache[urlString] = img;

哎,把图片缓存起来了,那下边,在下载之前,下一次在下载之前,我们应该先去判断,判断图片是否有缓存,如果有缓存的话,那应该去直接从缓存中读取图片,显示图片,如果没有缓存的话,那才去下载图片,

// 判断图片是否有缓存

if(self.imageCache[urlString]){

}

注意,在这个位置,我们两件事情都要解决,判断内存缓存,判断磁盘缓存,是不是也得写几行代码呢,我们之前有这样的经验,现在呢,这个方法,它的核心目的,可不是管理缓存,它的目的是什么,是不是专业下载图片,

它的目的就是专业下载图片,我就下载图片,别的事

你可能感兴趣的:(Objective-C,缓存,objective-c,开发语言)