iOS开发:初探ReactiveCocoa

本文介绍了iOS开发中使用ReactiveCocoa框架的基础知识,包括框架的引入、主要类如RACStream、RACSignal、RACSubject和RACSequence的详细讲解,以及如何使用RACSubscriber、RACScheduler和RACDisposable。此外,还提到了RACCommand在UI绑定和KVO、Notification、Delegate等方面的使用。
摘要由CSDN通过智能技术生成

前言


上次接触ReactiveCocoa已经是三年前的事情了,最近公司开新项目了,我选择了MVVM+ReactiveCocoa架构,但是开始撸代码时发现RAC的接口好像变化很大,就再此学习一下。

框架引入


框架介绍

为了适应Objective-C、swift,ReactiveCocoa将代码拆分为四个库:ReactiveCocoa(集中于UI)、ReactiveSwift(swift版)、ReactiveObjC(OC版)、ReactiveObjCBridge(桥接)。

笔者新项目是以OC语言开发的,主要是讲解ReactiveObjC的使用

框架集成

笔者采用cocoapods来管理的,这里吐槽一下,ReactiveObjC的介绍页面居然都没有相应的集成语句。

pod 'ReactiveObjC'

主要的类


ReactiveCocoa主要由下面四个核心组件组成:

  1. 信号源:RACStream以及其子类
  2. 订阅者:实现RACSubscriber协议的类
  3. 调度器:RACScheduler以及其子类
  4. 清洁工:RACDisposable以及其子类

信号源

RACStream

RACStream是一个抽象的类,任何对象的序列都可以理解为stream,在开发中我们一般是应用他的子类RACSignalRACDisposable来进行开发。

RACSignal

RACSignal是我们开发中用的最多的一个类,RACSignal通常表示将要交付的数据,必须要有订阅者订阅后才可以发送数据。
RACSignal可以向订阅者发送以下三种不同的事件:

  1. next 事件:该事件从流中提供一个新值,以传递给下一个订阅者。
  2. error 事件:该事件表示在信号结束前出现了错误,该事件可以携带一个NSError对象传递。
  3. completed事件:该事件表示信号已经完成,清洁工将开始销毁相应对象。
    在日常开发中,一般是由一个或者多个next 事件,以及一个error 事件或者completed事件组成。
RACSignal提供了以下操作符(可理解为方法)方便我们处理信号:(该示例代码来自:ReactiveCocoa文档)
  1. +merge merge操作符:将多个信号集中到一个信号中,任意一个信号中有数据到达就触发一下。
RACSubject *letters = [RACSubject subject];
RACSubject *numbers = [RACSubject subject];
RACSignal *merged = [RACSignal merge:@[ letters, numbers ]];

// Outputs: A 1 B C 2
[merged subscribeNe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值