RxSwiftでObservable<Void>をonNext()する方法
2018-01-14 14:26 - 1 min readもしかしたらRx本来の使い方から逸れているかもしれませんが,引数のいらない連続したイベントを通知するのにも, Rxは便利ですよね。
そこで Observable<Void>
,あるいは PublishSubject<Void>
というようなObservableを定義したことがある方も多くいるのではないでしょうか。
ただ,このVoidが流れるObservableは,onNext()
あるいは onNext(Void)
という形でVoidを送り込んでやろうとすると,引数を与えてやれという旨のエラーが発生します。
そんなときは onNext(())
としてやると良いです。これは値の入ってない空のTupleを与えてあげていることになりますが,これで通るようになります。
いっそのこと,Void型を取るObservableには,引数を必要としないようなExtensionを定義するとより直感的になりますね。
extension ObserverType where E == Void {
public func onNext() {
onNext(())
}
}