2017-04-03 217 views
1

我們目前的系統是這樣工作的。 一個對象有一個時間戳來指示應用程序的圖像已經更新。當圖像上傳到存儲器時,這個時間戳會被更新。舊圖像將被新圖像替換。Firebase iOS存儲圖像

但是我們的iOS開發者(Frank)有一個問題,他使用SDWebImage在他的單元格中加載圖像。但是當他在對象更改中使用相同的路徑和圖像時間戳時,SDWebImage不會重新加載圖像。因爲它使用URL緩存圖像。

這怎麼解決?

+0

你看過這個嗎? http://stackoverflow.com/a/16277427/6203030我正在尋找一個不清除所有緩存的答案。或者這一個:http://stackoverflow.com/questions/8751782/how-to-use-sdwebimage-without-any-cache-for-one-instance 你能分享你正在努力完成的代碼嗎? –

回答

0

您應該刪除緩存的圖像。 SDImageCache使您能夠管理SDWebImage的緩存數據,並且它具有可以移除緩存圖像的屬性。

當然,你可以全部緩存圖像或只有一個圖像與網址。 我在我的項目中的代碼如下。

SDImageCache * cache = [SDImageCache sharedImageCache];

[cache removeImageForKey:「要刪除的圖像的緩存URL」fromDisk:YES withCompletion:nil];

它適用於我,它不會讓你刪除所有緩存的數據。 希望它有幫助

0

我有完全相同的問題。

如果您使用數據庫來引用存儲對象,那麼以下內容可能適用於您。

雖然您的文件的名稱在映像執行時不會更改,但單獨的下載鏈接確實存在(可在Firebase控制檯的元數據中找到)。使用標準的Firebase存儲方法,而不是使用SDImageCache的唯一下載URL。每次圖像更新時,此URL都會刷新,SDImageCache將其識別爲新圖像!

imageToSet.sd_setImage(with: URL(string: imageUrl), 
placeholderImage: "Profile-Placeholder")