假设我有以下内容:
let theSubject = PublishSubject<String>()
let theObservable = Observable.just("Hello?")
如何将theSubject
设置为观察者theObservable
?
在RxSwift中,我们说主题是观察者,可以订阅 到一个或多个Observables ...
您能否显示一个简单的代码示例,说明我如何以theSubject
的观察者身份连接theObservable
?
答案 0 :(得分:4)
代码是:
| UserID | OrderID | UnitCost | ProcessDate |
|-------- |--------- |---------- |------------- |
| 1 | 2 | 3 | 2018-03-01 |
| 2 | 3 | 1 | 2018-04-01 |
| 3 | 5 | 3 | 2018-06-01 |
或:
theObservable
.bind(to: theSubject)
.disposed(by: bag)
如果您仅按照其他人的建议进行theObservable
.subscribe(theSubject)
.disposed(by: bag)
,则只会传递onNext事件。您应该使用bind传递所有内容。
(但实际上您可能不应该使用主题。而是将正在侦听该主题的事物直接绑定到Observable。
答案 1 :(得分:1)
theObservable
.subscribe(onNext: { theSubject.onNext($0) })
.disposed(by: disposeBag)
这将确保每次发出theObservable
时,该值也将传递给theSubject
。
注意
这仅传递值onNext
,如果您想处理所有情况,则将bind(to:)
用作Daniel T的answer(或drive
用于{{1} } s
在以下示例中,来自不同Driver
的值将传递到Observables
theSubject