【问题标题】:Swift Haneke: cache doesn't resolveSwift Haneke:缓存无法解析
【发布时间】:2015-07-02 14:26:01
【问题描述】:

我正在尝试使用以下代码预加载一些图像:

let thumbnailUrl = NSURL(string: urlString)
let fetcher = NetworkFetcher<UIImage>(URL: thumbnailUrl)
Shared.imageCache.fetch(fetcher) {
    println("Finished")
}

但是之后当我尝试将其设置为 imageview 时,它会再次从网络下载它,而不是从缓存中读取它。这是代码:

self.imageView.hnk_setImageFromURL(
    NSURL(string: urlString)
    success: { thumbnail in
        println("Finished setting image")
    }
)

这是一个错误还是我误解了imageCache.fetch() 的用法?

PD:我在整个代码中都设置了断点,我可以保证缓存的key(这里是url)完全一样,所以我不知道为什么缓存与.hnk_setImageFromURL() 一起使用时无法解析

【问题讨论】:

    标签: swift caching haneke


    【解决方案1】:

    我被困在这个问题上 3 天。我希望这个答案将来可能对其他人有所帮助。

    问题是我没有为fetcher 指定格式名称,而UIImageView.hnk_setImageFromURL() 却指定了。解决方法是:

    let thumbnailUrl = NSURL(string: urlString)
    let fetcher = NetworkFetcher<UIImage>(URL: thumbnailUrl)
    let cache = Shared.imageCache
    let format = self.imageView.hnk_format
    
    cache.fetch(fetcher, formatName: format.name) {
        println("Finished")
    }
    

    【讨论】:

    • 如果有任何机构想要上面的代码。不要忘记在缓存对象中添加格式,即 cache.addFormat(format)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-10
    • 2017-04-03
    • 1970-01-01
    • 2019-11-11
    • 1970-01-01
    • 2020-05-29
    • 2018-09-14
    相关资源
    最近更新 更多