最近在学习RXSwift,会做一些笔记。如果有错误的地方,望指正。
-
关于Subject 是干什么的?
在RXSwift中,号称“万物皆可序列”。 Subject的一个作用就是作为序列,
它还可以作为观察者,监听事务的变化。 -
江南5大才子-- subject的分类:
PublistSubject :
只会订阅在subscribe之后的改变。
BehaviorSubject:
- 初始化的时候会设置一个默认值。
- 在 subscribe之前会默认保留最后一次改变,之后一切正常。如果再次subscribe,则也会保留最后一次改变。
- 默认在BehaviorSubject里面留有一个 element属性,用来保存值。
ReplaceSubject :
功能与BehaviorSubject类似。不同在于可以自定义保存值的个数。
AsycnSubject:
功能与BehaviorSubject类似。不同在于当调用Error后会清空所有的值。
BehaviorRelay:
- 保留最后一个值
- 采用behavior.accept 录入值。
Subject的实际使用
- TableView 里面使用BehaviorSubject。
初始化数据,在改变model的方法里面执行OnNext,进行subscribe刷新。 - 值的反向传递。
A 到 B界面,修改数据后传回A。-- 类似于block的使用。
a. 详情申明一个PublishSubject,用于监听model的变化。当有值被修改时, 调用OnNext发送信号。
b. A 控制器在进入B时,调用B的subject.subscribe ,监听model的变化。
c. 注意:A只需要调用subscribe,不能调用OnNext。权限分开。
网友评论