随笔分类 - 开源框架源码解析

对一些常用开源源码进行解析
摘要: 前两篇博客我们分别聊了ReactiveSwift框架中的负责标记对象的生命周期的类Lifetime以及负责原子性操作的Atomic类的具体代码实现。前两篇博客之所以聊Lifetime以及Atomic的代码实现,就是为了今天这篇博客做铺垫的。在Property以及MutableProperty的代码实阅读全文
posted @ 2017-08-28 09:53 青玉伏案 阅读(504) | 评论 (0) 编辑
摘要: 本篇博客我们来聊一下ReactiveSwift中的原子性操作,在此内容上我们简单的聊一下Posix互斥锁以及递归锁的概念以及使用场景。然后再聊一下Atomic的代码实现。Atomic主要负责多线程下的原子操作,负责共享资源的同步一致性。而在Atomic中就是使用到了Posix互斥锁和递归锁。在聊上述阅读全文
posted @ 2017-08-18 09:32 青玉伏案 阅读(349) | 评论 (0) 编辑
摘要: 为了之后博客的进行,本篇博客我们就来聊一下ReactiveSwift框架中的Lifetime类的具体实现。从Lifetime这个名字中我们就这道,就是生命周期。在ReactiveSwift中使用Lifetime来标记一个对象的生命周期,其实主要功能还是将对象的deinit()析构函数通过发送信号量将阅读全文
posted @ 2017-08-08 09:38 青玉伏案 阅读(541) | 评论 (1) 编辑
摘要: 上篇博客我们聊完SignalProducer结构体的基本实现后,我们接下来就聊一下SignalProducerProtocol延展中的start和lift系列方法。SignalProducer结构体的方法扩展与Signal的扩展相同,都是面向协议的扩展。首先创建了一个SignalProducerPr阅读全文
posted @ 2017-07-26 10:06 青玉伏案 阅读(386) | 评论 (0) 编辑
摘要: 在前面几篇博客中我们详细的聊了ReactiveSwift中的Bag、Event、Observer以及Signal的使用方式和代码实现。那么在接下来的这几篇博客中,我们就依附于之前博客的基础上来聊一聊SignalProducer的用法以及内部的代码实现。从SignalProducer的名字中,我们容易阅读全文
posted @ 2017-07-20 09:45 青玉伏案 阅读(659) | 评论 (0) 编辑
摘要: 本篇博客我们就来聊一下combineLatest()的使用以及具体的实现方式。在之前的《iOS开发之ReactiveCocoa下的MVVM》的博客中我们已经聊过combineLatest()的用法,虽然是使用老版本的ReactiveCocoa和Objective-C语言介绍的,不过使用原理上都是一致阅读全文
posted @ 2017-07-13 09:33 青玉伏案 阅读(910) | 评论 (1) 编辑
摘要: 上篇博客我们聊了observe()、map()、filter()延展函数的具体实现方式以及使用方式。我们在之前的博客中已经聊过,Signal的主要功能是位于SignalProtocol的协议延展中的,而且延展函数是非常的多的。今天博客中我们继续来聊SignalProtocol中那些比较核心的延展实现阅读全文
posted @ 2017-07-10 09:39 青玉伏案 阅读(424) | 评论 (0) 编辑
摘要: 上篇博客我们对Signal的基本实现以及Signal的面向协议扩展进行了介绍, 详细内容请移步于《Signal中的静态属性静态方法以及面向协议扩展》。并且聊了Signal的所有的g功能扩展都是放在Signal所实现的SignalProtocol协议的扩展中的。本篇博客就沿袭上篇博客的内容,我们来聊一阅读全文
posted @ 2017-07-05 09:24 青玉伏案 阅读(510) | 评论 (2) 编辑
摘要: 上篇博客我们聊了Signal的几种状态、Signal与Observer的关联方式以及Signal是如何向关联的Observer发送事件的。本篇博客继续上篇博客的内容,来聊一下Signal类中静态的never和empty计算属性以及pipe()静态方法。然后再聊聊Signal中的面向协议编程中的面向协阅读全文
posted @ 2017-07-01 06:45 青玉伏案 阅读(380) | 评论 (0) 编辑
摘要: 上篇博客我们详细的聊了ReactiveSwift源码中的Bag容器,详情请参见《ReactiveSwift源码解析之Bag容器》。本篇博客我们就来聊一下信号量,也就是Signal的的几种状态以及Signal的基本实现。当然本篇博客所解析的源码会用到上篇博客介绍的Bag容器。本篇博客我们先通过一个示例阅读全文
posted @ 2017-06-27 09:26 青玉伏案 阅读(763) | 评论 (0) 编辑
摘要: 今天博客我接着上篇博客的内容来,上篇博客我们详细的看了ReactiveSwift中的Observer已经Event的代码实现。接下来我们来看一下ReactiveSwift中的结构体Bag的实现。Bag:袋子,顾明思议,就是用来装东西的,我们暂且将Bag称之为容器。在ReactiveSwift中的Ba阅读全文
posted @ 2017-06-21 09:32 青玉伏案 阅读(620) | 评论 (0) 编辑
摘要: ReactiveCocoa这个框架是做什么用的本篇博客就不做过多赘述了,什么是“响应式编程”也不多聊了,自行Google吧。本篇博客的主题是解析ReactiveCocoa框架中的核心模块ReactiveSwift中的两个核心类的实现,也就是对Event和Observer这两个类进行解析。之所以把这两阅读全文
posted @ 2017-06-19 10:36 青玉伏案 阅读(1315) | 评论 (1) 编辑
摘要: 今天博客中的Alamofire源码的版本是以3.4版本为例。上篇博客系统的对NSURLSession相关的东西进行了详细的解析,详情请看《详解NSURLSession》,为了就是给本篇博客打下基础。因为AlamoFire就是对NSURLSession及其相关的东西进行了进一步的封装,让网络请求使用起阅读全文
posted @ 2016-08-08 09:57 青玉伏案 阅读(3923) | 评论 (1) 编辑
摘要: 今天博客的主题不是Alamofire, 而是iOS网络编程中经常使用的NSURLSession。如果你想看权威的NSURLSession的东西,那么就得去苹果官方的开发中心去看了,虽然是英文的,但是结合代码理解应该不难。更详细的信息请移步于苹果官方介绍URL Loading System,网上好多i阅读全文
posted @ 2016-08-01 09:15 青玉伏案 阅读(2574) | 评论 (0) 编辑
摘要: Masonry是iOS在控件布局中经常使用的一个轻量级框架,Masonry让NSLayoutConstraint使用起来更为简洁。Masonry简化了NSLayoutConstraint的使用方式,让我们可以以链式的方式为我们的控件指定约束。本篇博客的主题不是教你如何去使用Masonry框架的,而是阅读全文
posted @ 2016-07-11 09:48 青玉伏案 阅读(8728) | 评论 (7) 编辑