函数响应式编程RAC简介

简介:

ReactiveCocoa是由Github开源应用于iOS和iOS开发一个函数响应式编程的框架,简称RAC。

Block作为属性、方法参数、返回值——此篇文章主要来介绍怎样使用block代码块,简单的将大家带入RAC

用RunTime重写KVO——此篇文章主要谈自己对KVO的原理理解以及怎让用runtime来自己实现一个KVO

正文:

RAC可以帮助我们简单粗暴的处理事件,比如说按钮的点击、上下拉刷新、包括我们的网络请求、属性监听又或者说用户位置的变化,delegate、action、KVO等等,都可以通过函数响应式编程来搞定,也就是本文中所提到的ReactiveCocoa!方便管理,使我们的代码高聚合、低耦合!

常用类:信号类(RACSignal)、信号类的提供者(RACSubject,当然这个类本身也可以充当信号包括发送信号)、协议(RACSubscriber,订阅者,发送信号)、RACDisposable(取消订阅)

那么首先我们来依次介绍RAC的常用类

RACSignal

信号类,比如说我们在写代码的过程中,有数据传递,只要数据发生改变,信号内部接受到数据,之后会信号内部还会发出一条数据(当然RACSignal类本身不具备发信号的功能,而是交给内部的一个订阅者发出去)。

一个信号,默认为是冷信号,简单的来说也就是值改变了,然而不会去出发,只有当订阅者订阅这此信号,这个信号才会变为热信号,才会激活信号!

使用示例

RACSubject

信号类的提供者,这个类本身就可以充当信号,而且包括发送信号,那么此刻是不是觉得可以代替代理,既然可以发送与充当信号,那么是不是就没有必要来定义代理了。

RACReplaySubject

RACSubject的子类,重复提供信号类,假如说一个信号每被订阅一次,就要把之前的值重新发一遍的时候,这个时候我们就可以使用重新提供信号类,还可以设置capacity数量来限制缓存的value的数量,也就是只缓最新的几个值。

RACSubscriber

也就是我们所说的订阅者,来激活信号,把冷信号变为热信号的东东。首先这是一个协议,并不是一个类,当我们遵守了这一个协议,并且实现方法才能称为订阅者。

RACDisposable

用于取消订阅,清理资源,当信号发送完成的时候或者发送错误时会自动触发,或者说不想去监听某一个信号的时候,我们可以直接主动取消订阅信号。

你可能感兴趣的:(函数响应式编程RAC简介)