我已经在使用AFNetworking进行异步图像下载。我想知道是否有一种存储在磁盘或核心数据上的方法,我应该调查SDWebImage吗?或者您建议使用自定义解决方案。 基本上我想有一种非常透明的方式来从网址获取图像,所以首先在NSCache中查找它们,如果没有找到它们在磁盘(或核心数据)上看,如果没有找到再次下载异步。 谢谢你的想法
答案 0 :(得分:2)
如果您使用网页图片进行按钮或图片浏览,您甚至可以调用-(void)setImageWithURL:(NSURL *)url
方法来检查缓存,为您获取图像,如果不存在,它会异步下载并存储它在设置之前在缓存中。
如果你需要其他东西的图像,你仍然可以通过调用:
从这个库中受益SDWebImageManager *manager = [SDWebImageManager sharedManager];
// Remove in progress downloader from queue
[manager cancelForDelegate:self];
[manager downloadWithURL:yourURL delegate:self options:0];
稍后在委托方法上检索图像:
- (void)webImageManager:(SDWebImageManager *)imageManager didFinishWithImage:(UIImage *)image
{
// Do something with the image
}
请注意
- (void)downloadWithURL:(NSURL *)url delegate:(id<SDWebImageManagerDelegate>)delegate options:(SDWebImageOptions)options
在尝试下载之前检查缓存,因此每次需要图像时都可以安全地调用它。
答案 1 :(得分:0)
试一试......
答案 2 :(得分:0)
您可以查看EGOImage,它基本上可以在文件系统上进行异步调用和图像缓存。