对ios网络加载图片进行本地文件缓存
https://github.com/rs/SDWebImage
把sdwebimage放入项目
加入imageIO.frtamework
和MapKit.framework
例子:
[imageView setImageWithURL:[NSURL URLWithString:@"https://graph.facebook.com/olivier.poitrey/picture"]
placeholderImage:[UIImage imageNamed:@"avatar-placeholder.png"]
options:SDWebImageRefreshCached];
setImageWithURL -网络的图片地址
placeholderImage - 本地保存的文件名
options:SDWebImageRefreshCached - 图片改变时刷新
异步加载
NSURL *url = [NSURL URLWithString:result];
NSArray *strArr= [result componentsSeparatedByString:@"/"];
NSString *pKey = strArr[strArr.count - 1];
if ([[SDImageCache sharedImageCache] imageFromDiskCacheForKey:pKey]) {
theBlock([[SDImageCache sharedImageCache] imageFromDiskCacheForKey:pKey]);
} else {
SDWebImageManager *manager = [SDWebImageManager sharedManager];
[manager downloadWithURL:url
options:0
progress:^(NSUInteger receivedSize, long long expectedSize) {
// progression tracking code
}
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished) {
if (image) {
[[SDImageCache sharedImageCache] storeImage:image
forKey:pKey
toDisk:YES];
theBlock(image);
// do something with image
}
}];
}