ReactiveCocoa函数响应式编程

 
  • ReactiveCocoa函数响应式编程
    • github团队开发的重量级的开源框架
    • 核心概念是信号signal(只要数据改变,信号内部接收到数据,就会马上发出数据),用信号接管了iOS的所有事件
    • iOS的事件包括addTarget,delegate,通知,KVO,网络异步回调
    • 好处是:
      • 直观和灵活。直观的代码容易编写、阅读和维护,灵活的特性便于应对变态的需求
      • 利用block将相关代码集中到一块,一定程度上解决代码分散的问题
      • RAC有一个主要的优点,就是提供了一个单一的,统一的方法去处理异步的行为,包括delegate方法,blocks回调,target-action机制,notifications和KVO.
      • 举个例子,一个text field能够绑定到最新状态,即使它在变,而不需要用额外的代码去更新text field每一秒的状态.它有点像KVO,但它用blocks代替了重写-observeValueForKeyPath:ofObject:change:context:.
      • 很多Cocoa编程集中在响应user events或者改变application state.这样写代码很快地会变得很复杂,就像一个意大利面,需要处理大量的回调和状态变量的问题,
      • 这个模式表面上看起来不同,像UI回调,网络响应,和KVO, notifications,实际上有很多的共同之处。RACSignal统一了这些API,这样他们能够组装在一起然后用相同的方式操作.
    • 注意地方:
      • 注意循环引用,
      • ViewModel发生变化的时候怎么通知ViewController并且相应的改变View呢?这就是ReactiveCocoa框架要干的事情了。(MVVM与ReactiveCocoa的关系,配合工作)
      • signal一创建是冷信号,不会被执行
      • 只有signal有订阅者(3种类型next,error,complement)之后,热信号,才会执行
原文地址:https://www.cnblogs.com/hanfengs/p/5709253.html