Ios rxSwift中的可观察对象和主体之间有什么区别

Ios rxSwift中的可观察对象和主体之间有什么区别,ios,swift,rx-swift,Ios,Swift,Rx Swift,可观察的和主体的区别是什么。 当我定义一个可观察类型变量时。它可以发出onNext、onComplete和onDispose。然而,受试者也可以这样做。我什么时候应该使用observable,在什么情况下应该使用subject?我认为,根据我对这两个主题的了解,我可以说 可观测值 一个可观察的(Rx的基本部分)是具有一些特殊特征的序列。最重要的特性是异步的。可观测对象产生一些事件(即onNext、onError、onCompleted),称为发射。事件包含一些值(即Int、Bool、数组或自定

可观察的和主体的区别是什么。
当我定义一个可观察类型变量时。它可以发出onNext、onComplete和onDispose。然而,受试者也可以这样做。我什么时候应该使用observable,在什么情况下应该使用subject?

我认为,根据我对这两个主题的了解,我可以说

可观测值

  • 一个可观察的(Rx的基本部分)是具有一些特殊特征的序列。最重要的特性是异步的。可观测对象产生一些事件(即onNext、onError、onCompleted),称为发射。事件包含一些值(即Int、Bool、数组或自定义类型)
主题

  • Simple observable只能发出可以订阅的事件。但是,如果我们想在当前的可观察对象(也称为自观察者)上增加一些价值,该怎么办呢。因此,我可以简单地说,作为一个可观察的,也作为一个观察者的东西被称为主体

为了理解它们之间的区别,我们应该提到:

在ReactiveX中,观察者订阅可观察对象。那么 观察者对观察到的任何项目或项目序列作出反应 发射。这种模式有利于并发操作,因为它 不需要在等待可观察对象发射对象时阻塞, 相反,它创造了一个站着的观察者形式的哨兵 准备好在未来任何可观察到的时间做出适当反应 这样做

换句话说,可观察的是数据生产者(负责发布要观察的通知)

实际上,是一种特殊类型的可观察对象(您仍然可以像其他任何可观察对象一样订阅消息):

主题是一种桥梁或代理,在某些情况下可用 ReactiveX的实现,既作为观察者又作为观察者 可观察到的。因为它是一个观察者,所以可以订阅一个或多个 可观察的,因为它是可观察的,所以它可以通过 它通过重新发射观察到的项目,也可以发射新的项目

但主题是可观察者和观察者的表示(如文档中所述),这意味着主题可能是数据生产者(负责发布待观察的通知)或数据消费者(负责接收通知)



代码片段:我建议检查RxSwift中是否有假人您得到了一些解释可观察对象和受试者之间差异的答案,但没有人回答您的第二个问题

我什么时候应该使用observable,在什么情况下应该使用subject

对于这个问题,这里有一个很好的答案,尽管很复杂:

<太长了,读不下去了。只要有可能,只要有必要,就用一个主题。< /P> 每当你需要一个热门的可观察对象,并且还没有可观察对象可使用时,你就使用一个主题。例如,RxCocoa广泛使用主题为你创建与特定UI元素相关的可观察对象。它们主要用于将非Rx代码桥接到Rx代码,并将生产者与消费者联系起来,后者必须是cre因为某种原因,他先被解雇了