我已经在使用 AFNetworking 进行异步图像下载。我想知道是否有一种方法可以存储在磁盘或核心数据上,我应该研究 SDWebImage 吗?或者您会建议采用定制解决方案。
基本上我希望有一种非常透明的方式从 url 获取图像,所以首先在 NSCache 中查找它们,如果没有找到,则在磁盘(或核心数据)上查找,如果没有找到,则再次下载异步。
感谢您的任何想法
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
在尝试下载之前会检查缓存,因此每次需要图像时都可以安全地调用它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)