其实利用ios原生网络请求或第三方库AFN/SDWebImage都可以做到.这里记录一下SDWebImage关于这方面的使用方法.看源代码会发现
- (UIImage *)imageFromDiskCacheForKey:(NSString *)key;
- (void)storeImage:(UIImage *)image forKey:(NSString *)key; //把数据存到内存和硬盘缓存中
这两个方法.
下载前先判断本地是否有该请求的缓存.没有的话再进行网络请求并在网络请求完成后将请求到的数据缓存处理.UIImage *cachedImage = [[SDImageCache sharedImageCache] imageFromDiskCacheForKey:keyURL];
if (cachedImage) {
//you can write your code here,dlx
} else {
[[SDWebImageDownloader sharedDownloader]downloadImageWithURL:[NSURL URLWithString:keyURL] options:SDWebImageDownloaderProgressiveDownload progress:^(NSInteger receivedSize, NSInteger expectedSize) {
} completed:^(UIImage *image, NSData *data, NSError *error, BOOL finished) {
if (finished) {
//缓存获取的图片数据
[[SDImageCache sharedImageCache] storeImage:image forKey:keyURL toDisk:YES];
}
}];
}