SDWebImage源码解析(一)

2017-05-03
阅读 13 分钟
4.8k
SDWebImage基本是iOS项目的标配。他以灵活简单的api,提供了图片从加载、解析、处理、缓存、清理等一些列功能。让我们专心于业务的处理。但是并不意味着会用就可以了,通过源码分析和学习,让我们知道如何用好它。学习分析优秀源码也可以从潜移默化中给我们提供很多解决日常需求的思路。下面就是一张图来概述SDWebImage...

SDWebImage源码解析(二)

2017-05-03
阅读 20 分钟
4k
SDWebImage使用了很多工具类来对图片的处理。比如获取图片类型、图片放大缩小、GIF图片处理、图片解压缩处理等。接下来我就要分析下面这几个工具类的实现。

SDWebImage源码解析(三)

2017-05-03
阅读 39 分钟
3.1k
这篇博文中,我将分析SDWebImageManager和SDImageCache。SDWebImageManager拥有一个SDWebImageCache和SDWebImageDownloader属性分别用于图片的缓存和加载处理。为UIView及其子类提供了加载图片的统一接口。管理正在加载操作的集合,这个类是一个单列。同时管理各种加载选项的处理。SDImageCache负责SDWebImage的整个缓存...

SDWebImage源码解析(四)

2017-05-03
阅读 29 分钟
2.7k
这篇博文将分析SDWebImageDownloader和SDWebImageDownloaderOperation。SDWebImage通过这两个类处理图片的网络加载。SDWebImageManager通过属性imageDownloader持有SDWebImageDownloader并且调用它的downloadImageWithURL来从网络加载图片。SDWebImageDownloader实现了图片加载的具体处理,如果图片在缓存存在则从缓存区...

AFNetWorking源码之AFSecurityPolicy

2017-04-26
阅读 21 分钟
5.5k
SSL(Secure Sockets Layer, 安全套接字层),因为原先互联网上使用的HTTP协议是明文的,存在很多缺点,比如传输内容会被偷窥和篡改。SSL协议的作用就是在传输层对网络连接进行加密。

AFNetWorking源码之AFURLRequestSerialization

2017-04-25
阅读 32 分钟
4.6k
AFURLRequestSerialization主要实现了根据不同情况和参数初始化NSURLRequest对象的功能。只有AFHTTPSessionManager有requestSerialization,默认是AFHTTPRequestSerializer对象。尤其是我们使用MultipartForm请求的时候,可以使用它帮我们完成繁杂的请求头拼接过程,这个是最值得推荐的。

AFNetWorking源码之AFHTTPSessionManager

2017-04-20
阅读 14 分钟
4.2k
AFHTTPSessionManager是AFURLSessionManager的子类。我们可以通过这个类做HTTP请求。其实整个AFHTTPSessionManager逻辑很简单,只是用HTTP的方式拼接了请求,并且调用父类的方式做处理。我会通过AFHTTPSessionManagerapi来讲一下POST上传数据的几种基本格式,然后我再随便分析一下AFHTTPSessionManager。

AFNetWorking源码之AFURLSessionManager

2017-04-19
阅读 34 分钟
3.4k
AFNetWorking基本上是所有iOS项目的标配。现在升级带最新版的3.X了。得益于苹果从NSURLConnection升级到NSURLSession,AFN也实现了api的简化,同时功能却一点没少。我们来看一下AFN3.X的目录结构:

UIViewController和UIView不同加载方式的生命周期函数

2017-04-15
阅读 8 分钟
5.5k
话说做了iOS几年,对于UIViewController和UIView的生命周期函数一直不是很重视,导致了很多模糊的地方。今天专门写一个Demo来验证一下,发现不同加载方式差别还是蛮大的。

AFNetWorking源码之NSURLSession系列概述

2017-04-14
阅读 16 分钟
4.5k
记得我刚做iOS的时候,那时候还是ASI和AFN共存,甚至ASI使用比例还多点,一转眼几年过去,ASI基本已经消失了,AFN基本成了iOS项目的标配。我虽然以前也有看过AFN2.x的源码,但是对于AFN3.x的源码一直没有自己阅读。接下来我会对AFN3.x学习并且写博客记录。得益于NSURLSession的强大功能,ANF3.0放弃了NSURLConnection这...

Block原理分析详解

2017-04-12
阅读 11 分钟
2.6k
Block一直是OC的一个重点、难点、黑科技。Block在日常项目中经常使用,他的实现方式和一般的oc代码不一样。同时也很容易出现使用不慎的情况。我们知道OC的本质是C语言+runtime。runtime中的具体实现完全就是汇编加上C语言。而且我们发现大部分都是通过结构体实现的。我们可以通过clang -rewrite-objc main.m 这种命令把...

WebViewJavascriptBridge原理解析

2017-04-05
阅读 22 分钟
15.3k
我们的项目是一个OC与javascript重度交互的app,OC与javascript交互的那部分是在WebViewJavascriptBridge的github地址的基础上修改的,WebViewJavascriptBridge应该是当前最流行最成功的OC与Web交互实现了。最近看了一下他的实现原理,顺便也为后面项目扩展打下基础。为了简化讲解过程,我忽略了UIWebView的实现过程,只...

Javascript的数据结构与算法(三)

2016-12-27
阅读 20 分钟
1.8k
一个树结构包含一系列存在父子关系的节点。每个节点都有一个父节点(除了顶部的第一个节点)以及零个或多个子节点。位于树顶部的节点叫作根节点(11)。它没有父节点。树中的每个元素都叫作节点,节点分 为内部节点和外部节点。至少有一个子节点的节点称为内部节点。没有子元素的节点称为外部节点或叶节点。节点的一个属性是...

Javascript的数据结构与算法(四)

2016-12-27
阅读 8 分钟
1.5k
冒泡排序比较任何两个相邻的项,如果第一个比第二个大,则交换它们。元素项向上移动至正确的顺序,就好像气泡升至表面一样,冒泡排序因此得名。冒泡排序的时间复杂度为O(n2)。

Javascript的数据结构与算法(二)

2016-12-27
阅读 13 分钟
1.5k
1集合 1.1集合的实现 集合是由一组无序且唯一(即不能重复)的项组成的。这个数据结构使用了与有限集合相同 的数学概念,但应用在计算机科学的数据结构中。 集合中常用方法列表: add(value):向集合中添加一个新的项。 remove(value):从集合中移除一个值。 has(value):如果在集合中,返回true,否则返回false。 clear():清...

Javascript的数据结构与算法(一)

2016-12-24
阅读 14 分钟
1.4k
1数组 1.1方法列表 数组的常用方法如下: concat: 链接两个或者更多数据,并返回结果。 every: 对数组中的每一项运行给定的函数,如果该函数对每一项都返回true,则返回true。 filter: 对数组中的每一项运行给定函数,返回改函数会返回true的项组成的数组。 forEach: 对数组中的每一项运行给定函数,这个方法没有返回值。...