私はこのコードを持っています:
let appActiveNotifications: [Observable<NSNotification>] = [
NSNotificationCenter.defaultCenter().rx_notification(UIApplicationWillEnterForegroundNotification),
NSNotificationCenter.defaultCenter().rx_notification(Constants.AppRuntimeCallIncomingNotification)
]
appActiveNotifications.merge()
.takeUntil(self.rx_deallocated)
.subscribeNext() { [weak self] _ in
// notification handling
}
.addDisposableTo(disposeBag)
指定された通知のいずれかをリッスンし、それらのいずれかがトリガーされたときに処理することになっています。
ただし、これはコンパイルされません。次のエラーが発生します。
Value of type '[Observable<NSNotification>]' has no member 'merge'
では、これら2つの信号を1つにマージするにはどうすればよいですか?
.merge()
は複数のObservables
を組み合わせているので、appActiveNotifications.toObservable()
を実行してから、.merge()
を呼び出します。
編集:または RxSwiftの遊び場 の例として、Observable.of()
を使用してから.merge()
on it;そのようです:
let a = NSNotificationCenter.defaultCenter().rx_notification(UIApplicationWillEnterForegroundNotification)
let b = NSNotificationCenter.defaultCenter().rx_notification(Constants.AppRuntimeCallIncomingNotification)
Observable.of(a, b)
.merge()
.takeUntil(self.rx_deallocated)
.subscribeNext() { [weak self] _ in
// notification handling
}.addDisposableTo(disposeBag)