程序员

2020-10-13

2020-10-13  本文已影响0人  王纯杰cj

ReactiveCocoa 源码分析(一)

1.简介

    ReactiveCocoa是一个基于函数响应式编程思想(Funcation Reactive Programming,简称FRP)的框架。由几个重要的部分组成,如下:

信号:例如RACSignal,他可以被订阅,订阅后进行逻辑处理或者数据传递。

订阅者:例如RACSubscriber,表示订阅者的意思。用于订阅和发送数据。它是一个协议,由具体的类实现。

清理者:例如RACDisposable,用于取消或者清理订阅者的资源。

2.基本流程分析

     简单的流程,创建一个信号,对信号的订阅,信号的销毁

信号的创建以及订阅销毁

1创建信号;通过[RACSignal createSignal:]方法创建信号 创建的信号为Signal的子类RACDynamicSignal 并保存传入的名为didSubscribe的Block

创建RACSignal子类信号(RACDynamicSignal) RACDynamicSignal(具体创建)

2订阅信号: 创建RACSubscriber订阅者, 订阅者绑定了3个block:nextBlock,errorBlock,completedBlock

RACSubscriber

3:响应信号:订阅者RACSubscriber订阅信号 [self subscribe:o]self代表的是RACDynamicSignal 执行didSubscribe这个block  执行订阅者RACSubscribersendNext方法

订阅信号的具体实现

4信号销毁:RACDisposable销毁对象,  信号,订阅者,销毁对象在信号完成后都需要被销毁,在信号被订阅的时候 在subscribe:方法中真正的订阅者(RACPassthroughSubscriber对象)关联了信号,销毁对象.

RACPassthroughSubscriber
上一篇下一篇

猜你喜欢

热点阅读