缓存的视频在哪里 b站手机缓存的视频在哪里

(点击上方公众号,可快速关注)
来源:junbinchencn
来源:junbinchencn
链接:http://www.jianshu.com/p/be9a0a088feb
链接:http://www.jianshu.com/p/be9a0a088feb
在iOS的图片加载框架中,SDWebImage可谓是占据大半壁江山 。它支持从网络中下载且缓存图片,并设置图片到对应的UIImageView控件或者UIButton控件 。在项目中使用SDWebImage来管理图片加载相关操作可以极大地提高开发效率,让我们更加专注于业务逻辑实现 。
SDWebImage 概论
1.提供了一个UIImageView的category用来加载网络图片并且对网络图片的缓存进行管理
2.采用异步方式来下载网络图片
3.采用异步方式,使用memory+disk来缓存网络图片,自动管理缓存 。
4.支持GIF动画
5.支持WebP格式
6.同一个URL的网络图片不会被重复下载
7.失效的URL不会被无限重试
8.耗时操作都在子线程,确保不会阻塞主线程
9.使用GCD和ARC
10.支持Arm64
SDWebImage 使用
1.使用IImageView+WebCache category来加载UITableView中cell的图片
[cell.imageView sd_setImageWithURL:[NSURL URLWithString:@"<a href="http://www.domain.com/path/to/image.jpg" target="_blank">"]];
[cell.imageView sd_setImageWithURL:[NSURL URLWithString:@"<a href="http://www.domain.com/path/to/image.jpg" target="_blank">"]];
展开全文
2.使用Blocks,采用这个方案可以在网络图片加载过程中得知图片的下载进度和图片加载成功与否
[cell.imageViewsd_setImageWithURL:[NSURLURLWithString:@""]placeholderImage:[UIImageimageNamed:@"placeholder.png"]completed:^(UIImageimage,NSErrorerror,SDImageCacheTypecacheType,NSURL*imageURL){...completion code here...}];
[cell.imageViewsd_setImageWithURL:[NSURLURLWithString:@""]placeholderImage:[UIImageimageNamed:@"placeholder.png"]completed:^(UIImageimage,NSErrorerror,SDImageCacheTypecacheType,NSURL*imageURL){...completion code here...}];
3.使用SDWebImageManager,SDWebImageManager为UIImageView+WebCache category的实现提供接口 。
SDWebImageManagermanager= [SDWebImageManagersharedManager];
[managerdownloadImageWithURL:imageURLoptions:0progress:^(NSIntegerreceivedSize,NSIntegerexpectedSize){// progression tracking code } completed:^(UIImage image, NSError error, SDImageCacheType cacheType, BOOL finished, NSURL imageURL) { if (image) { // do something with image } }];
SDWebImageManagermanager= [SDWebImageManagersharedManager];
[managerdownloadImageWithURL:imageURLoptions:0progress:^(NSIntegerreceivedSize,NSIntegerexpectedSize){// progression tracking code } completed:^(UIImage image, NSError error, SDImageCacheType cacheType, BOOL finished, NSURL imageURL) { if (image) { // do something with image } }];
4.加载图片还有使用SDWebImageDownloader和SDImageCache方式,但那个并不是我们经常用到的 。基本上面所讲的3个方法都能满足需求 。
SDWebImage 流程
UIImageView的图片加载流程
SDWebImage 接口
SDWebImage是一个成熟而且比较庞大的框架,但是在使用过程中并不需要太多的接口,这算是一种代码封装程度的体现 。这里就介绍比较常用的几个接口 。
1.给UIImageView设置图片的接口,SDWebImage有提供多个给UIImageView设置图片的接口,最终所有的接口都会调用下图的这个接口,这是大多数框架的做法 。
给UIImageView设置图片的接口
2.获取SDWebImage的磁盘缓存大小,在项目中有时候会需要统计应用的磁盘缓存内容大小,那么获取图片的缓存大小就是使用这个接口来实现
[SDImageCachesharedImageCache]getSize];
[SDImageCachesharedImageCache]getSize];
3.清理内存缓存,清理内存中缓存的图片资源,释放内存资源 。
【缓存的视频在哪里 b站手机缓存的视频在哪里】[[SDImageCachesharedImageCache]clearMemory];