Как работать с кешами изображений в ios при использовании 2 библиотек кеширования
Я использую изображение SDWebImage, загруженное в качестве загрузчика изображений по умолчанию, я также использую AZAPreviewController для отображения изображений в полноэкранном режиме.
AZAPreviewController использует свою собственную папку кэша для хранения кэшей для тех же изображений, но изображения не отображаются в iOS-8 при попытке извлечь AZAPreviewItem.
Может кто-нибудь, пожалуйста, помогите мне в этом или кто-нибудь может предложить какой-либо лучший контроллер предварительного просмотра (полноэкранный просмотрщик изображений) с поддержкой iOS8. Заранее спасибо.
1 ответ
Контроллер AZAPreview и SDWebImage имеют разные рабочие механизмы.
AZAPreviewController использует QLPreviewcontroller из ios в качестве суперкласса, который сохраняет изображения в виде файла с расширением в каталоге документов. Если он существует, напрямую извлеките изображение из каталога, в противном случае загрузите его с URL и сохраните в каталоге документов.
В то время как SDWebImage хранит изображения как NSDATA и сохраняет данные в папке каталога. При загрузке любого изображения извлекайте данные и конвертируйте их в UIImage.
Так что в целом, если мы используем обе библиотеки, то одно изображение будет храниться дважды, что потребляет память и неэффективно.
Я нашел один контроллер предварительного просмотра [MWPhotos][1], который использует SDWebImage в качестве своей библиотеки для загрузки изображений, которые НЕ создают никакого конфликта при хранении данных и лучше сохранять меньше кэш-памяти.
Итак, решите использовать MWPhotoBrowser, когда нам требуется контроллер Preview с SDWebImage в качестве библиотеки кэширования.
Справочный проект MWPhotoBrower: [1]: https://github.com/mwaterfall/MWPhotoBrowser
Благодарю.