簡體   English   中英

刷新AlamofireImage中的緩存圖像?

[英]Refresh cached image in AlamofireImage?

如果在服務器上更新了圖像,是否可以自動刪除緩存的圖像並下載更新的圖像? 我已經嘗試過AlamofireImage和STXImageCache,但是它們都只下載一次圖像,並且不更新它。 我這樣嘗試:

private let downloader = ImageDownloader()

func downloadImage(path: String?, completion: @escaping (UIImage?) -> ()) {
    guard let path = path else { return }
    let urlRequest = URLRequest(url: URL(string: path)!)

    downloader.download(urlRequest) { response in
        completion(response.result.value)
    }
}

手動更新也不是一件好事,因為如果我不知道映像是否在服務器上更新,那么我就完全不必考慮映像緩存。

當服務器上的內容更改時,似乎所有可用的Pod都無法刷新緩存的圖像或任何其他緩存的內容。 由於Content-Control技術的緣故,從技術上講這是可能的,但是Apple似乎沒有提供這種可能性https://developer.apple.com/documentation/foundation/nsurlrequest.cachepolicy/1414422-reloadrevalidatingcachedata

reloadRevalidatingCacheData指定如果源來源確認其有效性,則可以使用現有的緩存數據,否則從源來源加載URL。 此常量未實現,不應使用。

最好的辦法是讓服務器開發人員為將要更改的任何圖像(頭像,背景,圖標等)生成唯一的URL地址,或者如果服務器開發人員不可用,則應該擺脫存在此類位置的緩存有問題,請隨意下載。

無論如何,您都可以使用我的要旨下載此處緩存的圖像,而不下載此處緩存的圖像https://gist.github.com/sam-moshenko/562ec61431c4a0ebeb68899b4d1b4d26 (請不要忘記安裝pod 'AlamofireImage'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM