2016-04-01 5 views
9

に私は、コードのこの部分を持っています。マージ2人の通知のオブザーバーはRxSwift

しかし、これはコンパイルされません。次のエラーが発生します:

Value of type '[Observable<NSNotification>]' has no member 'merge' 

これらの2つの信号を1つにマージする必要がありますか?

答えて

22

.merge()は、複数のObservablesはそうあなたがそれに.merge()を呼び出すappActiveNotifications.toObservable()をしたいでしょう兼ね備え

編集: またはRxSwift's playgroundの例として、あなたはそれに.merge()を使用Observable.of()を使用することができます。そうですね。

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) 
+0

2種類のオブザーバーをマージしたいと思います。どのように達成するためのアイデア?これは私がやろうとしていることです。 http://stackoverflow.com/questions/39050059/rxswift-merge-different-kind-of-observables –

+0

2種類のObservablesをマージすることはできません。あなたはそれらを変換するか、または両方を一致させる必要があります! – nverinaud

+0

@SwiftHipster両方の結果を取得して手動でマージするには、 'zip'を使用できます。 – Caipivara

関連する問題