Предварительно выбранный SDWebImage не сохраняется после закрытия приложения - PullRequest
0 голосов
/ 20 января 2019

Я использую SDWebImage предварительная выборка, т.е.

SDWebImagePrefetcher
      .shared()
      .prefetchURLs(
        urls as [URL],
        progress: nil,
        completed: { finished, skipped in
          onComplete([finished, skipped])
        }
      )

Все выглядит хорошо, все ожидаемые изображения кэшируются и чувствуют отзывчивость при использовании моего приложения.Я показываю загрузчик при загрузке этих изображений, это занимает около 4 - 5 секунд.

Я ожидал, что в следующий раз, когда мое приложение откроется, эта предварительная выборка будет мгновенной, поскольку изображения уже должны быть в кеше?Однако, если я полностью выйду из своего приложения (закрою его из представления активного приложения iOS и т. Д.), А затем открою его, мне придется снова ждать те же 4 - 5 секунд.

Неужели я не понимаю, что делает этот метод?и, возможно, есть другое решение, которое будет вести себя так, как я этого ожидаю?

1 Ответ

0 голосов
/ 20 января 2019

Попробуйте принудительно установить тип кэша на диск из источников:

/**
 A SDImageCacheType raw value which specify the cache type when the image has just been downloaded and will be stored to the cache. Specify `SDImageCacheTypeNone` to disable cache storage; `SDImageCacheTypeDisk` to store in disk cache only; `SDImageCacheTypeMemory` to store in memory only. And `SDImageCacheTypeAll` to store in both memory cache and disk cache.
 If not provide or the value is invalid, we will use `SDImageCacheTypeAll`. (NSNumber)
 */
SDWebImageContextOption _Nonnull const SDWebImageContextStoreCacheType;

Ссылка здесь: https://github.com/SDWebImage/SDWebImage/blob/5.x/SDWebImage/SDWebImageDefine.h#L204-L208

...