ReactiveCocoa 小总结

前端之家收集整理的这篇文章主要介绍了ReactiveCocoa 小总结前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我的Github地址 :Jerry4me,本文章的demo链接 :JRReactiveCocoa

RAC与MVVM如今已经不是一个新鲜的玩意了,对于介绍他们两的精品文章更是大把,这篇文章主要是用来记录自己学习RAC的过程以及RAC的一些用法,以防以后要用到的时候却记不起来了.

具体RAC的用法以及本文出现的代码均能在我的Github上,另外附有2个MVVM的小demo. 欢迎大家查看,赏脸的给个star~


RAC编程思想

编程学的是思想,学一样东西最主要是学会它的思想,那才是它的灵魂,而不是学习调用方法而已.

RAC又被称为FRP,函数响应式编程.

何为函数式? 把操作写成一系列嵌套的函数或者方法调用

何为响应式? 不需要考虑调用顺序,只考虑结果. 一个属性,一个请求改变马上引发一系列改变.

所以RAC即糅合了函数式和响应式编程的优点,使用RAC编程不需要考虑代码调用顺序,只需要考虑结果. 把每一个操作都写成一系列的嵌套的方法,使代码变得高内聚,低耦合.


RAC使用场景

数据随着时间而产生,例如以下三点 :

  1. UI操作,连续的动作和动画部分,例如某些控件跟随滚动
  2. 网络库,因为数据是在一定时间后才返回回来,不是立刻返回的
  3. 刷新的业务逻辑,当触发点是多种的时候,业务往往会变得很复杂,用delegate,notification,observe混用,难以统一. 这时用RAC能保证上层的高度一致性,从而简化逻辑上分层.

RAC类关系图

RAC类的关系图如下,下面会抽出一部分类进行讲解,另外有部分类用法会在github上的demo上看得到,还有部分类将不在本文中出现,本文(demo)只说明了一些常用的类与方法.

ReactiveCocoa类图.png

信号源

RACStream.ng

RACSignal

RACSignal只会向订阅者发送三种事件 :next,errorcompleted.

RACSignal的一系列功能是通过类簇来实现的. 如 :