摘要: 先从downloadImageWithURL方法讲起: 每次方法调用的时候,就会创建一个SDWebImageCombinedOperation对象。 有三个属性,并遵循了SDWebImageOperation代理。 cancelled 是用来标记状态。 cancelBlock 是用来回调。 cach 阅读全文
posted @ 2018-03-30 19:37 我是你们最爱的硕哥 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 从UIView + webCache开始: 1. [self sd_cancelCurrentImageLoad]; 同一个imageview,请求避免请求多次。 每一个imageview 会有一个属性( operationDictionary),存放 SDWebImageOperation对象或者 阅读全文
posted @ 2018-03-30 19:37 我是你们最爱的硕哥 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 1. - (NSMutableDictionary *)operationDictionary 通过loadOperationKey值 ,将imageview和operations字典进行绑定。 获取到 loadOperationKey与绑定的imageview 上的 operations 字典 , 阅读全文
posted @ 2018-03-30 19:37 我是你们最爱的硕哥 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 此函数可能会有多个线程同时执行(因为允许多个图片的同时下载),那么就有可能会有多个线程同时修改URLCallbacks,所以使用dispatch_barrier_sync来保证同一时间只有一个线程在访问URLCallbacks。并且此处使用了一个单独的queue--barrierQueue,并且这个 阅读全文
posted @ 2018-03-30 19:36 我是你们最爱的硕哥 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 继承于NSOperation类 重写了-start方法。手动管理操作的状态,只有发送isFinished的KVO消息时,才认为是operation结束。 为了让操作队列能够捕捉到操作的改变,需要将状态的属性以配合KVO的方式进行实现。 isExecuting 代表任务正在执行中 isFinished 阅读全文
posted @ 2018-03-30 19:34 我是你们最爱的硕哥 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 流程图: 1.UIimageView + WebCache 类 sd_setImageWithURL 方法,实现异步加载图片。 在分类中,实现 sd_imageURL属性,保存url . 将placeHolder 付给image 2. SDWebImageManager(单利),调用 downloa 阅读全文
posted @ 2018-03-30 19:33 我是你们最爱的硕哥 阅读(129) 评论(0) 推荐(0) 编辑
摘要: - (NSOperation *)queryDiskCacheForKey:(NSString *)key done:(SDWebImageQueryCompletedBlock)doneBlock 作用:缓存中查找 现在memCache中查找,再在disk中查找(如果找到,存入缓存中)。 - (v 阅读全文
posted @ 2018-03-30 19:33 我是你们最爱的硕哥 阅读(534) 评论(0) 推荐(0) 编辑
摘要: 基于networking 框架 在项目中实践并得以应用。 网址:http://www.jianshu.com/p/05a59197a7c7 demo:https://github.com/YasinZhou/NetWorkingDemo 随着项目的体积越来越大,业务扩展越来越高,网络层出现了一下几种 阅读全文
posted @ 2017-02-20 21:07 我是你们最爱的硕哥 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 1. 分类的用处 可以把类的实现分开在几个不同的文件里面。这样做有几个显而易见的好处,a)可以减少单个文件的体积 b)可以把不同的功能组织到不同的category里 c)可以由多个开发者共同完成一个类 d)可以按需加载想要的category 等等。 声明私有方法 模拟多继承 把framework的私 阅读全文
posted @ 2016-10-20 20:01 我是你们最爱的硕哥 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 问题 http://blog.sunnyxx.com/2014/11/06/runtime-nuts/ 问题来源。 (1) 下面的代码输出什么? @implementation Son : Father- (id)init { self = [super init]; if (self) { NSL 阅读全文
posted @ 2016-10-11 22:09 我是你们最爱的硕哥 阅读(395) 评论(0) 推荐(0) 编辑