RXSwift 之 Subject

2021-09-18  本文已影响0人  简单Timor

最近在学习RXSwift,会做一些笔记。如果有错误的地方,望指正。

BehaviorSubject

  1. 初始化的时候会设置一个默认值。
  2. 在 subscribe之前会默认保留最后一次改变,之后一切正常。如果再次subscribe,则也会保留最后一次改变。
  3. 默认在BehaviorSubject里面留有一个 element属性,用来保存值。

ReplaceSubject :
功能与BehaviorSubject类似。不同在于可以自定义保存值的个数。

AsycnSubject:
功能与BehaviorSubject类似。不同在于当调用Error后会清空所有的值。

BehaviorRelay:

  1. 保留最后一个值
  2. 采用behavior.accept 录入值。

Subject的实际使用

  1. TableView 里面使用BehaviorSubject。
    初始化数据,在改变model的方法里面执行OnNext,进行subscribe刷新。
  2. 值的反向传递。
    A 到 B界面,修改数据后传回A。-- 类似于block的使用。
    a. 详情申明一个PublishSubject,用于监听model的变化。当有值被修改时, 调用OnNext发送信号。
    b. A 控制器在进入B时,调用B的subject.subscribe ,监听model的变化。
    c. 注意:A只需要调用subscribe,不能调用OnNext。权限分开。
上一篇 下一篇

猜你喜欢

热点阅读