在开发中常常遇到这样的需求,需要将网络请求回来的url地址中的图片保存到本地,在下次启动app的时候查看本地是否存在图片,不存在才去下载网络图片.当然使用SDWebImage框架也是可以的,这里我们自己来实现这样的功能.思路来源于SDWebImage原理
涉及到的知识点
如何保存图片到本地以及如何从本地读取图片
1,保存网络图片到本地沙盒路径
首先,需要获取沙盒路径
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
// 拼接图片名为"currentImage.png"的路径
NSString *imageFilePath = [path stringByAppendingPathComponent:@"currentImage.png"];
//获取网络请求中的url地址
NSString *url = [dataDic objectForKey:@"IndexUrl"];
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
//转换为图片保存到以上的沙盒路径中
UIImage * currentImage = [UIImage imageWithData:data];
//其中参数0.5表示压缩比例,1表示不压缩,数值越小压缩比例越大
[UIImageJPEGRepresentation(currentImage, 0.5) writeToFile:imageFilePath atomically:YES];
2,读取沙盒路径中图片
//借助以上获取的沙盒路径读取图片
NSString *imageFilePath = [path stringByAppendingPathComponent:@"currentImage.png"];
完
网友评论