2、SDWebImageDownloader 异步的图片下载器
SDWebImageDownloader是一个异步的图片下载器,它是一个单例类,主要负责图片的下载操作的管理。图片的下载是放在一个NSOperationQueue操作队列中来完成的,默认情况下,队列最大并发数是6。如果需要的话,我们可以通过SDWebImageDownloader类的maxConcurrentDownloads属性来修改。其声明如下:
3、SDWebImageDownloaderOperation 下载操作
下面我们来说一说SDWebImage的下载操作SDWebImageDownloaderOperation。该类继承自NSOperation,并且采用了 SDWebImageDownloaderOperationInterface, SDWebImageOperation, NSURLSessionTaskDelegate, NSURLSessionDataDelegate 四个协议方法。
①、SDWebImageDownloaderOperation的下载请求
先通过URL等生成NSURLRequest,并设置给operation属性。
1 | 声明: |
有时候下我们希望它支持后台下载。所以在operation的start方法中,如果支持后台shouldContinueWhenAppEntersBackground,则将当前请求添加到后台任务中
1 | Class UIApplicationClass = NSClassFromString(@"UIApplication"); |
对于图片的下载,SDWebImageDownloaderOperation的下载使用NSURLSession类。
1 | self.dataTask = [session dataTaskWithRequest:self.request]; |
1 | if (self.dataTask) { |