我试图用以下代码预加载一些图像:

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:我在整个代码中设置了断点,我可以保证缓存的密钥(在本例中,是URL)完全相同,所以我不知道缓存在与.hnk_setImageFromURL()一起使用时为什么不能解析。

最佳答案

我被困在这里三天了。我希望这个答案将来能对其他人有所帮助。
问题是我没有为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")
}

关于swift - Swift Haneke:缓存无法解析,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31187232/

10-13 01:14