2012-11-24 57 views
1

使用AsyncImageViewhere。在文檔中他們說「默認情況下,所有加載的圖像都被緩存」。你可以在文檔的最後一段看到它。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)]; 
+0

「緩存將繼續建設,直到內存警告被觸發。」你是否觸發過內存警告? – sunkehappy

回答

1

有我以前用過它的另一個庫,它的工作以及 這個庫被稱爲「SDWebImage」你可以簡單地通過一個方法使用它:

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

,它會自動緩存圖像,並且它只支持從緩存中加載(如果需要的話)。

+0

好吧嗯現在使用它,它工作得很好,但如何告訴它緩存的時間,意思如果我想清除緩存? 我想每隔4天緩存一次新圖片,所以我希望它每4天調用一次服務器,如何設置這些屬性? – Abo3atef

0

對我來說你的代碼看起來不對。你只需設置AsyncImageView的imageURL即可。

你不應對裝載機SDImageCache.m

1

,你會發現這行代碼:

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

它的緩存圖片的使用壽命,您可以將其更改爲4天,而不是7天

+0

或者您可以每4天致電[SDWebImageCache.sharedImageCache clearDisk] – MhammedMohie

-2

我已經解決了這個問題:你需要在你的文件的.m 0123添加

​​

和USE

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

,或者例如

cell.imageView.imageURL = url; 

和NOT

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