2020-10-13

作者: 王纯杰cj | 来源:发表于2020-10-13 17:00 被阅读0次

    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

    相关文章

      网友评论

        本文标题:2020-10-13

        本文链接:https://www.haomeiwen.com/subject/iggvpktx.html