次のコードを使用してオブザーバブルを作成します。
let disposeBag = DisposeBag()
let myJust = { (element: String) -> Observable<String> in
return Observable.create { observer in
observer.on(.next(element))
//observer.on(.completed)
return Disposables.create()
}
}
そのコードは、RxSwiftのサンプルコードからのものです。
空のObservablemyJust
を作成し、後でそれに値を送信しようとすると、次のようになります。
myJust("????").on(.completed)
次のエラーが発生します。
error: value of type 'Observable<String>' has no member 'on'
できません。 Observable
sは観察することしかできません。値をプッシュする場合は、Subject
が必要です。 Subject
はObservable
とObserver
の両方であるため、イベントを発行してリッスンできます。 RxSwiftでは、Variable
をバインドできるObservable
を作成することもできます。
BehaviorSubject
の簡単な例:
let subject = BehaviorSubject(value: 1)
subject.on(.Next(2))
subject.on(.Next(3))
subject.on(.Completed)