-
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)之后,热信号,才会执行
-
相关阅读:
668. Kth Smallest Number in Multiplication Table
658. Find K Closest Elements
483. Smallest Good Base
475. Heaters
454. 4Sum II
441. Arranging Coins
436. Find Right Interval
410. Split Array Largest Sum
392. Is Subsequence
378. Kth Smallest Element in a Sorted Matrix
-
原文地址:https://www.cnblogs.com/hanfengs/p/5709253.html
Copyright © 2020-2023
润新知