1.首先先导入这个第三方库.
2.代码如下;
@interface ViewController ()<NSURLConnectionDataDelegate>{
UIImageView* _imageView;
NSMutableData* _mData;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
_mData = [[NSMutableData alloc] init];
_imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 240)];
[self.view addSubview:_imageView];
NSString* url = @"http://car0.autoimg.cn/car/upload/2015/1/27/u_20150127230037815362210.jpg";
//缓存路径
NSString* path = [NSString stringWithFormat:@"%@/tmp/%@", NSHomeDirectory(), [url MD5Hash]];
//判断有没有缓存,缓存路径是否为真
NSFileManager* fm = [NSFileManager defaultManager];
if ([fm fileExistsAtPath:path]) {
NSLog(@"缓存");
//如果路径为真,证明有缓存
//读取缓存数据
NSData* data = [NSData dataWithContentsOfFile:path];
_imageView.image = [UIImage imageWithData:data];
} else {
NSLog(@"请求");
//没缓存,去进行请求
NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
[NSURLConnection connectionWithRequest:request delegate:self];
}
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
[_mData appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection{
_imageView.image = [UIImage imageWithData:_mData];
//做缓存 MD5 32位
NSString* url = @"http://car0.autoimg.cn/car/upload/2015/1/27/u_20150127230037815362210.jpg";
/*
http://www.baidu.com/1.png->md5->asdf343...234d
*/
//缓存路径
NSString* path = [NSString stringWithFormat:@"%@/tmp/%@", NSHomeDirectory(), [url MD5Hash]];
NSLog(@"%@", path);
//写入缓存
[_mData writeToFile:path atomically:NO];
}
@end