Есть ли основа для кэширования изображений на iOs? - PullRequest
2 голосов
/ 02 января 2012

Я уже использую AFNetworking для асинхронной загрузки изображений.Мне было интересно, есть ли способ хранения на диске или Core Data, я должен исследовать SDWebImage для этого?Или вы предлагаете иметь индивидуальное решение.В основном я хотел бы иметь очень прозрачный способ получения изображений из URL, поэтому сначала ищите их в NSCache, если не найдено, посмотрите на диск (или Core Data) l, если не найдено, снова загрузите async.Спасибо за любую идею

Ответы [ 3 ]

2 голосов
/ 02 января 2012

SDWebImage оказался действительно надежной реализацией асинхронного извлечения и кэширования изображений.

Если вы используете веб-изображения для кнопок или изображений, вы даже можете вызвать методы -(void)setImageWithURL:(NSURL *)url, которые проверяткэшируйте, получите изображение для вас и, если его там нет, оно будет асинхронно загружать его и сохранять его в кэше перед установкой.

Если вам нужны изображения для каких-то других вещей, вы все равно можете воспользоваться этимбиблиотеку, вызвав:

SDWebImageManager *manager = [SDWebImageManager sharedManager];

// Remove in progress downloader from queue
[manager cancelForDelegate:self];

[manager downloadWithURL:yourURL delegate:self options:0];

и получив изображение позже по методу делегата:

- (void)webImageManager:(SDWebImageManager *)imageManager didFinishWithImage:(UIImage *)image
{
    // Do something with the image
}

Обратите внимание, что

- (void)downloadWithURL:(NSURL *)url delegate:(id<SDWebImageManagerDelegate>)delegate options:(SDWebImageOptions)options

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

0 голосов
/ 03 января 2012

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

0 голосов
/ 02 января 2012

Дайте это попробовать ...

https://github.com/rs/SDWebImage

...