Как удалить изображение из кеша Nuke для Swift

Я пробовал фреймворк Nuke для кэширования изображений с сайта https://github.com/kean/Nuke. , в документе я не мог понять, как удалить изображение из кеша (как с диска, так и из памяти), я мог найти метод из класса Cache «removeAll» для удаления изображений из кеша, но у меня есть два вопроса:

  1. Как удалить одно изображение?
  2. Как удалить все изображения с диска, а также кэш памяти?

Я ничего не пробовал, я пытаюсь проверить документы, прежде чем пытаться, поэтому голосование против, потому что у меня нет прикрепленного кода, не стоит.


person vishal dharankar    schedule 18.07.2017    source источник
comment
Если вы уверены, что по этой проблеме нет документации, я бы посоветовал сообщить о ней как о проблеме в репозитории github.   -  person Ahmad F    schedule 18.07.2017
comment
github.com/kean/Nuke/issues/128   -  person Sergey Di    schedule 18.07.2017
comment
Таким образом, в конечном итоге они позволяют нам манипулировать Cache через URLCache, но это не так, не очень хорошо для фреймворка.   -  person vishal dharankar    schedule 18.07.2017


Ответы (1)


Для хранения необработанных данных изображения Nuke использует экземпляр URLCache. Поэтому вам нужно вызвать removeAllCachedResponses() соответствующего экземпляра URLCache.

В результате вы можете очистить изображение, хранящееся на диске, как показано ниже, если вы используете общий экземпляр Nuke, как указано Сергеем Ди в комментарий

Nuke.Cache.shared.removeAll()
Nuke.DataLoader.sharedUrlCache.removeAllCachedResponses()

Если вы используете собственный общий ImagePipeline, это немного сложно, но вы можете сделать, как этот код

(ImagePipeline.shared.configuration.dataLoader as? DataLoader)?.session.configuration.urlCache?.removeAllCachedResponses()

Надеюсь, мой ответ поможет вам.

person SCENEE    schedule 26.12.2018