//1.下載圖片且需要獲取下載進度
//內存緩存&磁盤緩存
[self.imageView sd_setImageWithURL:[NSURL URLWithString:@"http://img4.duitang.com/uploads/blog/201310/18/20131018213446_smUw4.thumb.600_0.jpeg"] placeholderImage:[UIImage imageNamed:@"Snip20160221_306"] options:SDWebImageCacheMemoryOnly | SDWebImageProgressiveDownload progress:^(NSInteger receivedSize, NSInteger expectedSize) {
} completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
switch (cacheType) {
case SDImageCacheTypeNone:
NSLog(@"直接下載");
break;
case SDImageCacheTypeDisk:
NSLog(@"磁盤緩存");
break;
case SDImageCacheTypeMemory:
NSLog(@"內存緩存");
break;
default:
break;
}
}];
//2.只需要簡單獲得一張圖片,不設置
//內存緩存&磁盤緩存
[[SDWebImageManager sharedManager] downloadImageWithURL:[NSURL URLWithString:@"http://img4.duitang.com/uploads/blog/201310/18/20131018213446_smUw4.thumb.600_0.jpeg"] options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize) {
NSLog(@"%f",1.0 * receivedSize / expectedSize);
} completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
//得到圖片
self.imageView.image = image;
}];
//3.不需要任何的緩存處理
//沒有做任何緩存處理|
//data:圖片的二進制數據
[[SDWebImageDownloader sharedDownloader] downloadImageWithURL:[NSURL URLWithString:@"http://img4.duitang.com/uploads/blog/201310/18/20131018213446_smUw4.thumb.600_0.jpeg"] options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize) {
} completed:^(UIImage *image, NSData *data, NSError *error, BOOL finished) {
[[NSOperationQueue mainQueue]addOperationWithBlock:^{
self.imageView.image = image;
}];
}];
//4.播放Gif圖片
UIImage *image = [UIImage sd_animatedGIFNamed:@"39e805d5ad6eddc4f80259d23bdbb6fd536633ca"];
self.imageView.image = image;
獲取圖片的類型
NSData *imageData = [NSData dataWithContentsOfFile:@"/Users/xiaomu/Desktop/Snip20160221_306.png"];
NSString *typeStr = [NSData sd_contentTypeForImageData:imageData];
NSLog(@"%@",typeStr);
一些細節的東西
//1.清空緩存
//clear:直接刪除緩存目錄下面的文件,然后重新創建空的緩存文件
//clean:清除過期緩存,計算當前緩存的大小,和設置的最大緩存數量比較,如果超出那么會繼續刪除(按照文件了創建的先后順序)
//過期時間:7天
[[SDWebImageManager sharedManager].imageCache clearMemory];
//2.取消當前所有的操作
[[SDWebImageManager sharedManager] cancelAll];
//3.最大并發數量 == 6
//4.緩存文件的保存名稱如何處理? 拿到圖片的URL路徑,對該路徑進行MD5加密
//5.該框架內部對內存警告的處理方式? 內部通過監聽通知的方式請你緩存
//6.該框架進行緩存處理的方式:可變字典--->NSCache
//7.如何判斷圖片的類型: 在判斷圖片類型的時候,只匹配第一個字節
//8.隊列中任務的處理方式:FIFO
//9.如何下載圖片的? 發送網絡請求下載圖片,NSURLConnection
//10.請求超時的時間 15秒
備注:FIFO先進先出,LIFO后進先出,NSCache后面會講解?。。。?/p>