我有一个应用程序,我想在本地存储来自在线图像路径(url)的图标图像。
当用户访问另一个url时,我将此图像存储在本地,该图标被以前的替换,以及如何替换此图标以重用plz帮助我。
谢谢!
NSString *strImage = [NSString stringWithFormat:@"%@",aBook.image];
NSURL *url4Image = [NSURL URLWithString:strImage];
NSData *data = [NSData dataWithContentsOfURL:url4Image];
if(data !=NULL)
{
imageView =[[UIImage alloc] initWithData:data];
if(imageView == NULL)
{
imageView =[UIImage imageNamed:@"dealsbell_lo.png"]; // NoImage.png
}
}
NSData *imageData = UIImagePNGRepresentation(imageView);
NSString *imageName = [NSString stringWithFormat:@"image.png"];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fullPathToFile = [documentsDirectory stringByAppendingPathComponent:imageName];
[imageData writeToFile:fullPathToFile atomically:YES];
cell.imageView.image = imageView;
对于这样的场景,您应该缓存下载的图像,并为下一个请求恢复相同的操作。
我认为您也应该使用JMImageCache框架。
这样做:
NSString *imageName = [NSString stringWithFormat:[NSString stringWithFormat:@"image_%d.png",indexPath.row]];//change name of image
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fullPathToFile = [documentsDirectory stringByAppendingPathComponent:imageName];
if([[NSFileManager defaultManager] fileExistsAtPath:fullPathToFile])
{
NSData *imgData = [NSData dataWithContentsOfFile:fullPathToFile];
if(imgData){
UIImage *img = [UIImage imageWithData:imgData];
cellimageView.image = img;
}
}
else
{
NSString *strImage = [NSString stringWithFormat:@"%@",aBook.image];
NSURL *url4Image = [NSURL URLWithString:strImage];
NSData *data = [NSData dataWithContentsOfURL:url4Image];
if(imgData){
UIImage *img = [UIImage imageWithData:imgData];
cellimageView.image = img;
[data writeToFile:fullPathToFile atomically:YES];
}
}