SDWebImage 用oc写的第三方库

SDWebImage是常用的一个加载网络图片的第三方库,分别给UIImageVIew和UIbutton添加了类别,直接可以调用

封装思路:

1、使用异步网络请求加载图片。

2、实现了图片的缓存

缓存分为内存和沙盒两种途径,内存中的缓存图片以key-value的形式存在,如果图片缓存过多的话会自动清理缓存,沙盒目录下的图片保存在Library下的Cache文件夹下,是由用户手动清理缓存的


3、实现了图片的缓存之后,再次启动程序,他会首先检测内存中有没有缓存,如果有直接加载缓存中的图片,如果内存中没有去检测沙盒中有没有缓存,如果有直接加载沙盒中的图片,如果没有直接进行网络请求。

imageView1.sd_setImageWithURL(NSURL(string: "http://static.damai.cn//6d2f40c2-b15e-4646-b84d-27acac971426.jpg"), placeholderImage: UIImage(named: "8.jpg"))



4、调用UIButton的类别,加载网络图片,并且如果不带缓存,options表示的是额外需要处理的功能,CacheMemoryOnly表示只在内存中缓存一份,沙盒中不缓存

button.sd_setImageWithURL(NSURL(string: "http://static.damai.cn//e947b853-41d5-4504-a046-8195ab516d7f.jpg"), forState: UIControlState.Normal, placeholderImage: UIImage(named: "8.jpg"), options: SDWebImageOptions.CacheMemoryOnly) 


5.关键字static的作用是什么?

(1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;

(2)在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;

(3)在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,160评论 25 709
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,312评论 30 472
  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 5,682评论 0 4
  • 一份爱的礼物 考虑了很久,最终下定决心给自己一份爱的礼物“年金保险”,寓意要爱我自己一辈子。我是这样想现在还年轻给...
    李晓勤阅读 2,701评论 0 0
  • 身材婀娜,如风如云 唇是绽开的花朵 眉如弯月,而双眸则像 掉入湖中的两颗星星 笑声,如小桥流水般 爽郎,又像小夜...
    简书孙利阅读 1,651评论 2 10