我试图用以下代码预加载一些图像:
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/