1.什么是ReactiveCocoa?
具备函数式编程思想的开发框架,ReactiveCocoa具备函数式编程和响应式编程思想,因此常被称之为函数响应式编程(Functional Reactive Programming)框架。
2.为什么要使用ReactiveCocoa?
使用ReactiveCocoa可以简化原生框架大多场景,让开发更为一致和高效。ReactiveCocoa统一了iOS中常见的Target,KVO, 代理,通知,NSTimer,网络异步回调等操作。并将相应的事件处理代码聚合在一起。
3.ReactiveCocoa的核心是什么?
根据信号进行订阅和传递。
接下来将会介绍与此相关的四个大的概念:
信号源
订阅者
回收站(RACDisposable)
调度器(上图中未提及)
RACStream 分为RACSignal (核心类) 和 RACSequence(序列信号)
1.核心类RACSignal
最常用的信号类,主要功能是创建信号、配置订阅者来订阅信号。
信号在传递过程中包括正常传递、传递完成和传递失败的状态,分别对应下图中next、completed和error。
2.订阅者
为了获取某个信号源中的值,通常需要对该信号源进行订阅,这就产生了订阅者的概念。
在ReactiveCocoa中所有实现了RACSubscriber协议的类都可以作为信号源的订阅者。
ReactiveCocoa源码中RACSubscriber协议规定了四个要实现的方法:
3.回收站(RACDisposable)
在ReactiveCocoa中并没有专门的类来代表一次完整的订阅行为,而间接地使用RACDisposable来表示订阅行为。
订阅完成或失败时自动触发回收机制,因为它主要做一些资源回收和垃圾清理的工作。
可以通过RACDisposable的dispose方法主动取消订阅行为,不再接受信号传递的信息。
4.调度器(RACScheduler)
RACScheduler是对GCD的简单封装,用来调度订阅任务。
网友评论