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

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]){
}

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

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