Iphone iOs上是否有图像缓存框架?

Iphone iOs上是否有图像缓存框架?,iphone,ios,afnetworking,sdwebimage,Iphone,Ios,Afnetworking,Sdwebimage,我已经在使用AFNetworking进行异步映像下载。我想知道是否有一种方法可以存储在磁盘或核心数据上,我是否应该研究SDWebImage?或者,您建议使用自定义解决方案。 基本上,我希望有一种非常透明的方式从url获取图像,因此首先在NSCache中查找图像,如果未找到,请在磁盘(或核心数据)上查找;如果未找到,请再次下载async。 谢谢你的任何想法试试看 SDWebImage已被证明是一个真正可靠的异步图像获取和缓存实现 如果您将web图像用于按钮或图像视图,您甚至可以调用-(void)s

我已经在使用AFNetworking进行异步映像下载。我想知道是否有一种方法可以存储在磁盘或核心数据上,我是否应该研究SDWebImage?或者,您建议使用自定义解决方案。 基本上,我希望有一种非常透明的方式从url获取图像,因此首先在NSCache中查找图像,如果未找到,请在磁盘(或核心数据)上查找;如果未找到,请再次下载async。 谢谢你的任何想法

试试看


SDWebImage已被证明是一个真正可靠的异步图像获取和缓存实现

如果您将web图像用于按钮或图像视图,您甚至可以调用
-(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
-(void)下载WithURL:(NSURL*)url委托:(id)委托选项:(SDWebImageOptions)选项

在尝试下载之前检查缓存,因此每次需要图像时都可以安全地调用该缓存。

您可以查看基本上在文件系统上对图像进行异步调用和缓存的方法。

这不是一个完全重复的问题,但这里的答案是一样的:SDWebImage非常方便,尤其是渐进式图像下载。但它基于NSUrlConnection(即使在最新版本3.7.5中也是如此),我们知道,从iOS9开始,这是不推荐的。NSUrlSession已经存在3年多了,我认为未来的赢家将是实现NSUrlSession的那个。AFNetworking 3.0完全基于NSURLSession。因此,我认为Afnetworking比SDWebImage更好。SDWebImage基于NSUrlConnection,这在iOS 9上是不推荐的。AFNetworking 3.0使用NSURLSession。我想现在的选择应该是网络!