首页 > 代码库 > 多线程(四)之cell图片下载(SDWebImage的认识总结)

多线程(四)之cell图片下载(SDWebImage的认识总结)

1.SDWebImage

首先这是个很有名的第三方框架,功能主要是:图片下载,图片缓存,下载进度监听和gif处理等..

本次的目的是了解一下底层实现和框架的使用.

1.仿写SDWebImage

1.1自定义下载图片的NSOperation

实现起来很简单:思路如下:

1.我要下载图片在模拟器或者真机显示,肯定第一步就是在sb中拉一个imageview控件.

2.肯定要在控制器中设置一个全局属性的queue队列,一般是要懒加载一下,目的也就是实例化队列queue.

3.然后就是采用多线程中的NSOperation来下载图片,NSOperation是一个抽象类,没有直接的实例化方法,所以用的时候是用他的两个子类去创建操作对象,或者自定义一个操作类,一般采用自定义操作类,为什么呢?因为我们一般下载操作会封装起来,提供接口供控制器使用.

4.注意,在自定义的操作类中,思考一个问题,在哪个方法中去执行下载任务,答案是main方法,而这个方法比较有意思,它默认由NSOperation中的start方法调用,所以也就是我调用start方法后默认会执行main方法,还有一个就是,当我不去调用start方法,而是把任务添加到队列中,这个时候默认会调用start方法.

一个常识哦,苹果的plus版,frame宽:414高:736 ,如果面试问道,可以说自己使用的时候都是用自动布局,设置四周边距为0 ,不一定非要记得很清楚

 

分别用代理通知和block完成对图片的异步下载操作,上传到文件中了

 

多线程(四)之cell图片下载(SDWebImage的认识总结)