SDWebImageManager — это класс, стоящий за категорией UIImageView+WebCache. Он связывает асинхронный загрузчик с хранилищем кэша изображений. Вы можете использовать этот класс напрямую, чтобы извлечь выгоду из загрузки веб-изображения с кэшированием в другом контексте, чем UIView (т.е. с Cocoa).
Вот простой пример использования SDWebImageManager:
SDWebImageManager *manager = [SDWebImageManager sharedManager];
[manager downloadWithURL:imageURL
options:0
progress:^(NSInteger receivedSize, NSInteger expectedSize)
{
// progression tracking code
}
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished)
{
if (image)
{
// do something with image
}
}];
Вы можете запустить и сделать это для каждого изображения ... я не уверен, какова будет производительность для 1000 изображений, и вы захотите убедиться и предупредить своего пользователя о том, что вы собираетесь делать.
Другой подход, основанный на SDWebImage
, заключается в том, чтобы управлять своими собственными NSOperationQueue
из SDWebImageDownloaderOperation
и использовать это из SDImageCache
для их сохранения по мере их завершения.
/**
* Store an image into memory and optionally disk cache at the given key.
*
* @param image The image to store
* @param key The unique image cache key, usually it's image absolute URL
* @param toDisk Store the image to disk cache if YES
*/
- (void)storeImage:(UIImage *)image forKey:(NSString *)key toDisk:(BOOL)toDisk;
Это дало бы вам немного больше контроля над количеством одновременных операций загрузки, а также лучший контроль сохранения состояния.
Взято со страницы GitHub.
person
random
schedule
29.04.2014