2
for url in status.storedPicURLS! {
            group.enter()
            print("\(status.storedPicURLS)")
            KingfisherManager.shared.downloader.downloadImage(with: url, options: nil, progressBlock: nil, completionHandler: { (image, _, _, _) in
                print(" \(image)")
                group.leave()
            })
        }
    }
    group.notify(queue: .main) {
        finished(list, nil)
    }

我可以在控制台中获取图像,但在缓存中找不到它们。

/Library/Developer/CoreSimulator/Devices/7AF33AA9-220E-4B54-9830-  AA94226C16E8/data/Containers/Data/Application/451F885E-1DFF-4E57-A0D7-B3DEC880DF8F/Library/Caches/

图片说明在这里

4

2 回答 2

12

下载器 ( ImageDownloader) 与缓存无关。如果您想下载和缓存(以及稍后检索缓存的图像),您应该使用管理器方法:KingfisherManager.shared.retrieveImage而不是独立的下载器。

于 2016-10-18T04:45:07.293 回答
0

请参阅文档中的此摘录:

imageView.kf.setImage(with: url, completionHandler: { 
    (image, error, cacheType, imageUrl) in
    // image: Image? `nil` means failed
    // error: NSError? non-`nil` means failed
    // cacheType: CacheType
    //                  .none - Just downloaded
    //                  .memory - Got from memory cache
    //                  .disk - Got from memory Disk
    // imageUrl: URL of the image
})

https://github.com/onevcat/Kingfisher/wiki/Cheat-Sheet

检查 cacheType 的结果是什么。它可能不存储在磁盘缓存中。

做这个:

        KingfisherManager.shared.downloader.downloadImage(with: url, options: nil, progressBlock: nil, completionHandler: {  (image, error, cacheType, imageUrl) in
            print("\(imageUrl), from cache: \(cacheType)")
            group.leave()
        })

粘贴输出。

于 2016-10-17T22:22:04.790 回答