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

时间:2012-01-02 18:06:02

标签: iphone ios afnetworking sdwebimage

我已经在使用AFNetworking进行异步图像下载。我想知道是否有一种存储在磁盘或核心数据上的方法,我应该调查SDWebImage吗?或者您建议使用自定义解决方案。 基本上我想有一种非常透明的方式来从网址获取图像,所以首先在NSCache中查找它们,如果没有找到它们在磁盘(或核心数据)上看,如果没有找到再次下载异步。 谢谢你的想法

3 个答案:

答案 0 :(得分: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

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

答案 1 :(得分:0)

答案 2 :(得分:0)

您可以查看EGOImage,它基本上可以在文件系统上进行异步调用和图像缓存。