AsyncImageView没有缓存图像

时间:2012-11-24 09:50:07

标签: objective-c ios caching uiimageview image-caching

使用AsyncImageViewhere。在文档中,他们说“默认情况下,所有加载的图像都被缓存”。您可以在文档的最后一段中看到它。

问题是当我尝试再次加载图片时,它附带占位符并等待几秒钟再次从URL加载图像,即使它已经上次成功加载。

这意味着它没有被缓存,对吧? 那么问我的代码是否有问题?
为什么图像没有被缓存,就像使用SDWebImage

一样

这些是我的代码:

AsyncImageView *imageView = [[AsyncImageView alloc] initWithFrame:CGRectMake(0, 0, productCellWidth, productCellHeight)];
imageView.contentMode = UIViewContentModeScaleAspectFill;
imageView.clipsToBounds = YES;
NSURL *URL =  [NSURL URLWithString:[NSString stringWithFormat:ProductPicture]];
[AsyncImageLoader defaultCache];
[[AsyncImageLoader sharedLoader]loadImageWithURL:URL target:self success:@selector(successSelector) failure:@selector(failureSelector)];

4 个答案:

答案 0 :(得分:1)

我之前使用过另一个库,它运行良好 这个名为“SDWebImage”的库您可以通过以下方法使用它:

[imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
               placeholderImage:[UIImage imageNamed:@"placeholder.png"]];

它会自动缓存图像,并且只支持从缓存加载(如果需要)。

答案 1 :(得分:1)

在SDImageCache.m中,您将找到以下代码行:

static NSInteger cacheMaxCacheAge = 60*60*24*7; // 1 week

这是缓存的图像生命周期,您可以将其更改为4天而不是7天

答案 2 :(得分:0)

对我来说你的代码看起来不对。你只需设置AsyncImageView的imageURL。

你没有处理装载机

答案 3 :(得分:-2)

我已经解决了这个问题:你需要添加

#import "AsyncImageView.h"

在您的文件.m

和USE

NSURL *url = [NSURL URLWithString:yourUrlString];
photo.imageURL = url; 

OR FOR EXAMPLE

cell.imageView.imageURL = url;

而不是

UIImage *theImage = [UIImage imageWithData:imageData];
photo.image = theImage;