在開(kāi)發(fā)中常常遇到這樣的需求,需要將網(wǎng)絡(luò)請(qǐng)求回來(lái)的url地址中的圖片保存到本地,在下次啟動(dòng)app的時(shí)候查看本地是否存在圖片,不存在才去下載網(wǎng)絡(luò)圖片.當(dāng)然使用SDWebImage框架也是可以的,這里我們自己來(lái)實(shí)現(xiàn)這樣的功能.思路來(lái)源于SDWebImage原理
涉及到的知識(shí)點(diǎn)
如何保存圖片到本地以及如何從本地讀取圖片
1,保存網(wǎng)絡(luò)圖片到本地沙盒路徑
首先,需要獲取沙盒路徑
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
// 拼接圖片名為"currentImage.png"的路徑
NSString *imageFilePath = [path stringByAppendingPathComponent:@"currentImage.png"];
//獲取網(wǎng)絡(luò)請(qǐng)求中的url地址
NSString *url = [dataDic objectForKey:@"IndexUrl"];
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
//轉(zhuǎn)換為圖片保存到以上的沙盒路徑中
UIImage * currentImage = [UIImage imageWithData:data];
//其中參數(shù)0.5表示壓縮比例,1表示不壓縮,數(shù)值越小壓縮比例越大
[UIImageJPEGRepresentation(currentImage, 0.5) writeToFile:imageFilePath atomically:YES];
2,讀取沙盒路徑中圖片
//借助以上獲取的沙盒路徑讀取圖片
NSString *imageFilePath = [path stringByAppendingPathComponent:@"currentImage.png"];
完