Мое приложение имеет дело с большим количеством загрузок изображений, и поэтому я хочу, чтобы оно было максимально быстрым для пользователя. Предпочтительно, когда изображение загружается, его больше никогда не нужно загружать.
Моя первоначальная стратегия заключалась в том, чтобы сохранить все UIImages
в NSArray
, но в конечном итоге это потребовало бы тонны памяти/ОЗУ.
Затем я подумал об использовании NSCache
, который автоматически удаляет элементы, если использование памяти становится слишком большим. Моя проблема заключается в том, что после удаления элемента мне придется повторно загружать изображение в следующий раз, когда оно мне понадобится.
Кажется, моим лучшим решением было бы (и если я полностью упустил что-то лучшее, пожалуйста, скажите мне), чтобы сохранить их в решении в стиле NSCache
, а когда NSCache
удаляет элемент, сохранить его на диск. Поэтому, когда он понадобится в следующий раз, ему не нужно будет его перезагружать, даже если кеш удалил его, и он все равно будет быстрее получать его с диска, чем снова с сервера.
Мне интересно, используют ли такие библиотеки, как SDWebImage, которые, как я понимаю, используют кеш, поэтому изображения не загружаются несколько раз. — используйте такое решение, или они больше похожи на NSCache
, где изображение просто исчезнет, когда использование памяти будет слишком большим, и потребуется повторная загрузка. (Только, как только приложение завершит выполнение, я бы не хотел, чтобы оно больше оставалось на диске.)
Я смотрю на это совершенно неправильно? Должен ли я делать что-то совершенно другое?