1

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

问题是当我尝试再次加载图像时,它带有占位符并等待几秒钟以再次从 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

4 回答 4

1

在 SDImageCache.m 中你会发现这行代码:

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

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

于 2012-12-07T08:09:45.127 回答
1

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

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

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

于 2012-11-24T10:00:01.897 回答
0

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

你不处理装载机

于 2012-11-24T10:51:02.423 回答
-2

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

#import "AsyncImageView.h"

在你的文件 .m

和使用

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

或例如

cell.imageView.imageURL = url;

并不是

UIImage *theImage = [UIImage imageWithData:imageData];
photo.image = theImage;
于 2014-01-10T12:49:57.620 回答