11

私はこのコードを持っています:

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つにマージするにはどうすればよいですか?

4

1 に答える 1

26

.merge()複数を組み合わせてObservablesやりappActiveNotifications.toObservable()たく.merge()なる

編集: または、RxSwift のプレイグラウンドのObservable.of()例として、使用してから使用できます.merge()。そのようです:

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)
于 2016-04-01T11:46:55.127 に答える