Реплицировать изображения предварительной выборки в память (SDWebImageCacheMemoryOnly) в v5

#ios #image #caching #sdwebimage

#iOS #изображение #кэширование #sdwebimage

Вопрос:

При использовании SDWebImage v4 можно было установить параметры для кэширования изображений в памяти только через

 SDWebImagePrefetcher.sharedImagePrefetcher.options = SDWebImageCacheMemoryOnly;
 

Похоже, это больше не вариант с v5, отсюда и этот вопрос. По умолчанию кажется, что кэшированные изображения поступают с диска. (Некоторые изображения появляются на экране с задержкой, которую я ранее решил, предварительно выбрав их в памяти).

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

Ответ №1:

Ответ от одного из сопровождающих библиотеки, оригинал которого можно найти по адресу https://github.com/SDWebImage/SDWebImage/issues/2698

Существует параметр контекста, называемый storeCacheType, тип значения — SDImageCacheType . Смотрите документацию об этом.

 /**
 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)
 */
FOUNDATION_EXPORT SDWebImageContextOption _Nonnull const SDWebImageContextStoreCacheType;
 

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

 SDWebImagePrefetcher.sharedImagePrefetcher.context = @{SDWebImageContextStoreCacheType : @(SDImageCacheTypeMemory)};