我已经在使用 AFNetworking 进行异步图像下载。我想知道是否有办法存储在磁盘或核心数据上,我应该为此调查 SDWebImage 吗?或者你会建议有一个定制的解决方案。基本上我希望有一种非常透明的方式从 url 获取图像,所以首先在 NSCache 中查找它们,如果找不到,请在磁盘(或核心数据)上查找,如果找不到,请再次下载异步。感谢您的任何想法
问问题
3148 次
3 回答
2
SDWebImage 已被证明是异步图像获取和缓存的真正可靠实现。
如果您将网络图像用于按钮或图像视图,您甚至可以调用-(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
在尝试下载之前会检查缓存,因此每次需要图像时调用它是安全的。
于 2012-01-02T18:35:56.507 回答
0
试试这个...
于 2012-01-02T18:09:34.567 回答
0
你可以看看EGOImage,它基本上在文件系统上进行异步调用和图像缓存。
于 2012-01-02T20:25:22.113 回答