Swift: временное сохранение изображения локально, пока приложение находится на переднем и заднем плане - PullRequest
0 голосов
/ 07 августа 2020

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

Я знаю, что у Swift есть файловая система, но мне было интересно, является ли это лучшей практикой для такого рода реализации или есть лучшее решение.

1 Ответ

1 голос
/ 07 августа 2020

Сделать именно то, что вы хотите, невозможно, но вы можете сделать что-то похожее по функциональности.

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

SDImageCache.sharedImageCache().clearMemory()
SDImageCache.sharedImageCache().clearDisk()

Теперь, что касается , когда вы хотите очистить кеш, это немного сложно.

Вы не можете очистить кеш при завершении работы приложения, потому что нет способа надежно определить, когда приложение завершено. Существует метод UIApplicationDelegate.applicationWillTerminate, но он не вызывается, если приложение завершает работу в приостановленном состоянии.

Но вы можете сделать обходной путь: просто очистите кеш при запуске приложения в UIApplicationDelegate.application(_:didFinishLaunchingWithOptions:), что приведет к быть функционально эквивалентным тому, что вы хотите сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...