Подтвердить что ты не робот

IOS - кэширование и загрузка изображений асинхронно

Мне нужна библиотека загрузки изображений и кеширования для iOS, которая

  • загружает изображения асинхронно,
  • кэширует изображения с настраиваемым размером кеша и поведением LRU,
  • проверяет, обновлены ли изображения, используя HTTP HEAD,
  • не кэширует ничего в случае кода ошибки или недопустимого изображения.

Я просмотрел HJCache, но он удовлетворяет только первым двум из этих критериев. Есть что-то лучше?

4b9b3361

Ответ 1

Я знаю, что на этот поток был дан ответ, но я попробовал библиотеку, которая отлично поработала. Раньше я использовал ASIHttpRequest и разница была большой.

https://github.com/rs/SDWebImage

Кроме того, если кому-то нужно изменить размер или обрезать удаленные изображения и иметь те же функции, которые предоставляет SDWebImage, я интегрировал библиотеку SDWebImage с библиотекой UIImage + Resize (по Trevor Harmon) и создал примерный проект. Я модифицировал код SDWebImage для обработки преобразований (обрезка, изменение размера).

Проект доступен на https://github.com/toptierlabs/ImageCacheResize. Не стесняйтесь использовать его!

Ответ 2

EDIT: ASI теперь устарела, но у ответа @Tony есть ссылка на библиотеку, которая, кажется, делает большую часть этого (отказ от ответственности - я еще не пробовал и не согласен с рекомендацией @Tony!)


ASIHTTPRequest делает все это:)

Все, что вам нужно сделать, это добавить что-то вроде обратного вызова успеха

UIImage *image = [UIImage imageWithData:[request responseData]];

// If the image is nil ASIHTTPRequest will let you remove the data from the cache
// but I can't remember off the top of my head how. Checkout the docs!

ИЗМЕНИТЬ

И когда вы закончите, вы всегда можете поместить его на github для остальных из нас.,

Ответ 3

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

Там разные сообщения в блогах и вещи, детализирующие такие вещи, такие как http://davidgolightly.blogspot.com/2009/02/asynchronous-image-caching-with-iphone.html.

Я полагаю, вы рассмотрели библиотеку Three20? Я не думаю, что это покроет ваши требования.