Swift Haneke:缓存无法解决

时间:2015-07-02 14:26:01

标签: swift caching haneke

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

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()

一起使用时,我不会解决问题

1 个答案:

答案 0 :(得分:3)

我被困在这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")
}