2016-10-17 3 views
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) 
    } 

Я могу получить изображение в Консоли, но я не могу найти их в Кэшах.Изображение кеша Kingfisher на диск

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

image description here

ответ

6

Загружатель (ImageDownloader) не имеет никакого отношения к кешу. Если вы хотите загрузить и кешировать (а также получить кешированные изображения позже), вы должны использовать метод менеджера: KingfisherManager.shared.retrieveImage вместо автономного загрузчика.

+0

Получил! Спасибо за ваш ответ и вашу библиотеку. – duguyihou

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

Paste.

+0

Спасибо за ваш повтор. – duguyihou

+0

'для URL-адреса в status.storedPicURLS! { group.enter() KingfisherManager.shared.retrieveImage (с: URL, опции: ноль, progressBlock: ноль, completionHandler: {(_, _, _, _) в group.leave() }) } } group.notify (очередь: .main) { законченный (список, ноль) } ' – duguyihou

+0

Используйте функцию я изменил в моем ответе, то печать (cacheType) – toast