
框架分析
rv0p111
之前由于一些原因博客没有更新,现在还是正常更新,继续分享..
展开
-
Masonry浅析
首先我们可以先写下最常用的代码 [btn mas_makeConstraints:^(MASConstraintMaker *make) { make.left.top.equalTo(@10); make.right.bottom.equalTo(@10);}点进这个方法mas_makeConstraints,我们会看到下面的这样的代码,先原创 2017-12-26 06:58:03 · 309 阅读 · 0 评论 -
SDWebImage关于diskImageDataBySearchingAllPathsForKey方法需要去删除扩展名去寻找的问题
一、简单介绍最近在看SDWebImage的源码的时候发现了在- (nullable NSData *)diskImageDataBySearchingAllPathsForKey:(nullable NSString *)key 方法中如果我们带有扩展名的key找不到图片的话,就去使用删除扩展名的key。关于此SDWebImage也有解释,给了个链接 https://github.com/rs/S...原创 2018-04-08 10:06:20 · 746 阅读 · 0 评论 -
SDWebImage中的SDImageCache、SDImageCacheConfig
一、概念介绍SDWebImageCache是SDWebImage中的一个缓存类,是拿来缓存数据的,在SDWebImage中分为缓存数据到磁盘以及内存,下面就简单的介绍下它们头文件的内容,其实它们的头文件的内容就是给我们在外面可以自定义去设置的,可以去调用头文件的方法,本身就是这个框架对外的接口,所以我们应该对其的概念应该有一定的了解二、代码实战关于SDImageCache.h文件的内容#impor...原创 2018-03-11 11:30:33 · 1808 阅读 · 0 评论 -
苹果官方文档压缩图像的方法
一、简单介绍 苹果的官方文档有一个代码演示了一种支持在有限的内存环境中显示超大图像的方法,方法是将磁盘上的大图像转换为内存中较小的图像。这在原始图像太大而无法按照要显示的要求放入内存的情况下很有用。支持的格式是:PNG,TIFF,JPEG。不支持的格式:GIF,BMP,隔行扫描图像。——[官方文档]下面主要是想记录下这个代码中的一个宏的修改其值的区别,讲道理,之前一直搞也没搞明白,不...原创 2018-03-16 17:31:48 · 594 阅读 · 0 评论 -
SDWebImage-解码、压缩图像
一、简单介绍研究了下SDWebImage的源码,借鉴了别人的一些资料,感觉逐渐的明白的一些原理,现在就来记录下。在我们使用 UIImage 的时候,创建的图片通常不会直接加载到内存,而是在渲染的时候默认在主线程上再进行解码并加载到内存。这就会导致 UIImage 在渲染的时候效率上不是那么高效。为了提高效率所以在SDWebImage中就采取在子线程中进行解码图片。这里再介绍下为什么创建图像的时候是...原创 2018-03-10 11:58:36 · 3313 阅读 · 0 评论 -
SDWebImage-存储图片到磁盘和内存过程
其实在SDWebImage中有一个方法就可以把图片缓存到内存中和磁盘中,还是一样的套路,一个长方法,关于这个函数其实不难代码注解写在里面,可供观看。- (void)storeImage:(nullable UIImage *)image imageData:(nullable NSData *)imageData forKey:(nullable NSSt...原创 2018-03-09 12:27:57 · 4100 阅读 · 0 评论 -
AFNetworking中的url_session_manager_create_task_safely
对于url_session_manager_create_task_safely这个有什么用?其实这个是被当做是一个在ios8以下,NSURLSessionDataTask出现的一个Bug。问题产生的原因就是当队列是并发的,这是当两个任务同时在不同的线程上创建任务的时候taskIdentifier可能是一样的。这样在AFNetworking中会产生的问题,在2014年的时候被人提出,大致的意思其实...原创 2018-02-28 14:13:36 · 728 阅读 · 0 评论 -
SDWebImage中UIImageView调用sd_setImageWithURL过程
最近都在研究SDWebImage,也想看看实现,在这边就总结一下关于调用sd_setImageWithURL过程,我觉得在github上面的官网的时序图是要看的,虽然过程有所简化,但其实还是有学习的地方。下面就用代码图片来描述这整个过程已经进入到了UIView的分类中了之后就是先去查缓存再进入queryCacheOperationForKey方法中进行查询然后在load方法里面调用了SDWebIm...原创 2018-03-07 23:50:28 · 3203 阅读 · 0 评论 -
SDWebImagePrefetcher中的只读属性manager
最近在看SDWebImage源码的时候,偶然发现在SDWebImagePrefetcher中有一个属性是SDWebImageManager *manager,在其的.h文件中是只读的,如下所述而在其内部就是可读可写的属性这就很好的解决了在外部我们不允许修改,在内部我们可以任意进行修改的问题了。如果我们没有这么设置,比如说我们创建了个student类,是只读属性#import <Foundat...原创 2018-03-06 19:51:22 · 285 阅读 · 0 评论 -
Masonry中的mas_makeConstraints方法
一、简单介绍我们一般来说会这样进行使用 [view mas_makeConstraints:^(MASConstraintMaker *make) { //这个使用的就是MASCompositeConstraint类型的 make.left.top.width.height.mas_equalTo(100).multipliedBy(1); /...原创 2018-04-12 10:10:54 · 10506 阅读 · 0 评论