iphone - sdwebimagemanager - swift kingfisher download image




Кэш очистки SDWebImage (2)

Я показываю список значков, загруженных из Интернета, с текстом в виде таблицы. Значки можно изменить на стороне сервера, и мне нужно их заменить, как только появятся новые значки. Я пытаюсь использовать следующий код:

[imgView setImageWithURL:url placeholderImage:[UIImage imageNamed:@"table_avatar_icon"] options:SDWebImageCacheMemoryOnly];

И вызовите [[SDImageCache sharedImageCache] clearMemory]; В моем обратном вызове refresh, но он не очищает содержимое кеша. Более того, даже если я закрою приложение и снова открою его, изображение все еще там.

Я нашел только один способ очистки кеша, и это [[SDImageCache sharedImageCache] clearDisk]; , Это работает только после закрытия и повторного открытия приложения.

Как заставить SDWebImage не использовать кэширование дисков?


Кроме методов SDImageCache, я настоятельно рекомендую вам проверить свои URL-адреса изображений. В моей ситуации я пробовал каждый метод для imageCache, и проблема с памятью продолжалась. Аварии происходили в основном на iPhone 4s из-за аппаратного обеспечения, с которым он не мог справиться.

Главной проблемой был url ampersand encoding!

Например, проверьте эти URL: первый url использует «& amp», а второй - нет. Из-за амперсанда моя библиотека JSON не может прочитать значение ширины и ширины, которое будет намного выше, чем должно быть. Вот почему у меня была проблема с памятью.

1) /select.php?imageid=101961221 "& amp" ; width = 100 "& amp" ; isWatermarked = true

2) /select.phpimageid=101961221&width=100&isWatermarked=true

Кроме того, в последних версиях библиотеки UIImageView+WebCache.h класс UIImageView+WebCache.h и он действительно прекрасно справляется с проблемами кеша.


Находите источник, если проблема. Кажется, меня обманул шаблон Singleton, используемый в SDImageCache . Кэш для расширения, который используется над UIImageView, контролируется SDWebImageManager который имеет переменную экземпляра SDImageCache . Если вы хотите очистить кеш для расширения, вы должны вызвать его методы imageCache, такие как clearDisk и clearMemory.





sdwebimage