SDWebImage
1.清除缓存
clearDisk 直接清除所有缓存
[[SDWebImageManager sharedManager].imageCache clearDisk];
cleanDisk 先清除过期的缓存,过期期限为7天 如果当前的缓存超过设置的最大缓存,继续按时间顺序删除创建时间比较长的缓存
[[SDWebImageManager sharedManager].imageCache cleanDisk];
2.取消当前所有操作
[[SDWebImageManager sharedManager] cancelAll];
3.最大并发数 6
4.缓存文件保存的命名:原始图片路径经过md5加密后存在cache目录下
5.框架对内存警告的处理方式:内部通过监听的方式清理缓存
6.框架对缓存的处理方式:可变字典 -> NSCache
7.框架如何判断图片类型,取图片二进制数据的第一个字节做判断
8.队列中任务的处理方式:FIFO
9.如何下载图片?发送网络请求,使用NSURLConnection
10.请求超时的时间:15秒
一些图片下载的方法:
//下载图片且需要获得下载进度
//内存缓存&磁盘缓存
- (void)download1
{
[self.imageView sd_setImageWithURL:[NSURL URLWithString:@"http://img2.itsogo.net/Upfile2/2013/3/3891423851158.jpg"] placeholderImage:[UIImage imageNamed:@"defaultImage"] options:SDWebImageRetryFailed progress:^(NSInteger receivedSize, NSInteger expectedSize) {
self.label.text = [NSString stringWithFormat:@"loading... %f",1.0 * receivedSize / expectedSize];
} completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
self.imageView.image = image;
self.label.text = @"";
switch (cacheType) {
case SDImageCacheTypeNone:
NSLog(@"图片直接下载");
break;
case SDImageCacheTypeDisk:
NSLog(@"图片已存到本地");
break;
case SDImageCacheTypeMemory:
NSLog(@"图片缓存倒内存");
break;
default:
break;
}
}];
}
//只需要简单获得一张图片,不设置
//内存缓存&磁盘缓存
- (void)download2
{
[[SDWebImageManager sharedManager] downloadImageWithURL:[NSURL URLWithString:@"http://img2.itsogo.net/Upfile2/2013/3/3891423851158.jpg"] options:SDWebImageRetryFailed progress:^(NSInteger receivedSize, NSInteger expectedSize) {
self.label.text = [NSString stringWithFormat:@"loading... %f",1.0 * receivedSize / expectedSize];
} completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
self.imageView.image = image;
self.label.text = @"";
switch (cacheType) {
case SDImageCacheTypeNone:
NSLog(@"图片直接下载");
break;
case SDImageCacheTypeDisk:
NSLog(@"图片已存到本地");
break;
case SDImageCacheTypeMemory:
NSLog(@"图片缓存倒内存");
break;
default:
break;
}
}];
}
//仅下载图片,无需缓存
//没有做任何缓存处理
- (void)download3
{
[[SDWebImageDownloader sharedDownloader] downloadImageWithURL:[NSURL URLWithString:@"http://img2.itsogo.net/Upfile2/2013/3/3891423851158.jpg"] options:SDWebImageDownloaderLowPriority progress:^(NSInteger receivedSize, NSInteger expectedSize) {
self.label.text = [NSString stringWithFormat:@"loading... %f",1.0 * receivedSize / expectedSize];
} completed:^(UIImage *image, NSData *data, NSError *error, BOOL finished) {
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
self.imageView.image = image;
self.label.text = @"";
}];
}];
}
- (void)setGifImage
{
UIImage *image = [UIImage sd_animatedGIFNamed:@"0141f756c5cf3532f875520ff8aafd"];
self.imageView.image = image;
}