Мое приложение загружает и отображает GIF
из Интернета в UIImageView
сек. GIF
вообще не нужно кэшировать / сохранять. Однако приложение занимает много места на iPhone, а документы и данные огромны.
Я хотел бы иметь возможность очищать папку «Документы и данные» каждый раз, когда пользователь открывает приложение. Возможно ли это сделать с Swift
?
1 ответ
В используемом вами расширении используется следующий код:
Data(contentsOf: url)
https://developer.apple.com/documentation/foundation/nsdata/1413892-init
Этот метод будет кэшировать данные в системном кеше.
Если вы хотите продолжать использовать это расширение, вам следует изменить этот код, чтобы использовать его вместо этого:
init(contentsOf:options:)
https://developer.apple.com/documentation/foundation/nsdata/1407864-init
И передайте "uncached" как вариант, чтобы избежать кеширования.
https://developer.apple.com/documentation/foundation/nsdata.readingoptions/1412417-uncached
Однако я думаю, что расширение написано плохо, например, вы должны использовать этот метод только для загрузки КОРОТКИХ локальных файлов, для больших файлов необходим поток, для сетевых запросов вы вообще не должны его использовать.
Важный
Не используйте этот синхронный метод для запроса сетевых URL-адресов. Для сетевых URL-адресов этот метод может заблокировать текущий поток на десятки секунд в медленной сети, что приведет к неудовлетворительному взаимодействию с пользователем, а в iOS может привести к завершению работы вашего приложения. Вместо этого для URL-адресов, не являющихся файлами, рассмотрите возможность использования метода dataTask (with: completionHandler :) класса NSURLSession. См. Подробности в Руководстве по программированию сеанса URL.
Data(contentsOf: url, options: .uncached)
Data.init(contentsOf: url, options: .uncached)
по-прежнему приводит к большой емкости для хранения документов и данных
Похожие вопросы
Новые вопросы
ios
iOS - мобильная операционная система, работающая на Apple iPhone, iPod touch и iPad. Используйте этот тег [ios] для вопросов, связанных с программированием на платформе iOS. Используйте связанные теги [target-c] и [swift] для проблем, характерных для этих языков программирования.
GIF
где-нибудь в каталоге телефонов?