Кэшировать изображения на диск напрямую с помощью retriveImage()?

Я использую Kingfisher для загрузки изображений следующим образом:

 KingfisherManager.shared.retrieveImage(with: url!, options: nil, progressBlock: nil, completionHandler: { (image, error, cacheType, imageURL) -> () in
            if let image = image {

Мне было интересно, можно ли их кэшировать прямо на диске? Так как я получаю много изображений, время от времени память может немного подводить.


person Recusiwe    schedule 22.04.2017    source источник


Ответы (2)


В документе Kingfisher уже есть доступный метод. Который установит изображение из URL-адреса и в то же время будет обрабатывать кеш.

let url = URL(string: "url_of_your_image")
imageView.kf.setImage(with: url)

Дополнительная информация о CocoaDocs

person Shad    schedule 22.04.2017
comment
То, как я это делаю, просто прекрасно, так как я не назначаю свои изображения для imageView, а использую их в качестве наложений на Google Maps. Мне просто нужно знать, могу ли я хранить их на диске, а не в памяти по умолчанию. - person Recusiwe; 23.04.2017

В документации для ImageCache указано, что вы можете настроить количество памяти, которую Kingfisher будет использовать через свойство maxMemoryCost. Он говорит, что значение по умолчанию не ограничено и, по-видимому, представляет это с 0.

Я не пробовал, но вы можете попробовать установить очень низкое число (поскольку оно относится к общему количеству пикселей, число вроде 10 гарантирует, что в памяти практически нет изображений) и посмотреть, что произойдет.

person Dave Weston    schedule 23.04.2017