美文网首页
ReactiveCocoa 小结

ReactiveCocoa 小结

作者: Janek_m | 来源:发表于2020-03-03 13:01 被阅读0次
    一、介绍

    ReactiveCocoa(简称RAC)是由GitHub团队开源的一套基于Cocoa的并且具有FRP特性的框架。
    FRP(Functional Reactive Programming)响应式编程RAC就是一个第三方库,使用它可以大大简化代码,提高开发效率。
    整合了系统的各种UI响应事件、通知、代理、KVO等功能,提供了使用更方便更内聚的API,思路是通过信号的创建和订阅来完成消息传递的。扩展出了多个信号关联、信号变换、信号压缩后再传递等实用的功能。

    二、基础理论

    (1) 什么是信号?
    RAC的核心就是信号,即RACSignal。信号--传递数据的工具,当数据变化时,信号就会发送改变的信息,以通知信号的订阅者执行方法。

    (2) 什么是冷热信号?
    1.Hot Observable是主动的,尽管你并没有订阅事件,但是它会时刻推送,就像鼠标移动;而Cold Observable是被动的,只有当你订阅的时候,它才会发布消息。
    2.Hot Observable可以有多个订阅者,是一对多,集合可以与订阅者共享信息;而Cold Observable只能一对一,当有不同的订阅者,消息是重新完整发送。
    3.RACSubject及其子类是热信号。RACSignal排除RACSubject类以外的是冷信号。

    三、类介绍
    • RACStream是一个抽象类,定义了流的一些操作方法。框架里面主要是使用的RACStream 的子类RACSignalRACSequence来完成操作的
    • RACSignal,信号类,框架的核心类,可以订阅这个信号来收到回调,每次订阅都会收到一次block的回调. 可以自定义创建,也可以使用框架里面提供的子类、
    • RACSubscriber,订阅者类,遵守了RACSubscriber协议的对象都可以是订阅者,可以调用方法sendNext:sendError:sendComplete:, 调用后即回调对应的block。
    • RACDisposable, 订阅关系的取消和相关资源的清理, 注意不是清理信号对象。
    RACSignal类的结构: RACSubscriber类的结构: RACDisposable类的结构:

    相关文章

      网友评论

          本文标题:ReactiveCocoa 小结

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