我将离线使用我的应用程序。所以,我应该下载我将在视图中使用的所有图像。
我正在使用AFNetworking的缓存机制。但是在显示图像时速度很慢。
因此,我想在必要时从服务器下载文件,并从本地路径设置imageviews的图像。
这是一个好方法吗?
答案 0 :(得分:1)
NSData *data = [[NSData alloc] initWithContentsOfFile:[NSURL URLWithString:@"imageURL"]];
UIImage *img = [UIImage imageWithData:data];
imageView.image = img;
NSString *path = @"your path";
[UIImagePNGRepresentation(img) writeToFile:[path stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", {name}, @"png"]] options:NSAtomicWrite error:nil];
// when accessing it
UIImage *diskImage = [UIImage imageWithContentsOfFile:path];
或者你可以使用它:https://github.com/rs/SDWebImage - 它有缓存供离线使用,您可能会觉得有用。它还包含一个占位符图像方法。
答案 1 :(得分:0)
这些图片是动态的吗?如果他们不是,而不是下载它们,您可以将它们全部包含在应用程序的软件包中,以便在最初安装应用程序时将它们下载。
答案 2 :(得分:0)
我花了很多天试图找到最好的方法,看看我的回答here for a similar question。
答案 3 :(得分:0)
我开始使用https://github.com/rs/SDWebImage,现在一切都很好。