2017-08-31 2 views
1

私はリアクティブプログラミングを初めて使いました。私はViewControllerがいつアプリケーションのローダー画面を開始/停止するかを知るために、私のViewModelからブール値を観察しようとしています。メンバー 'subscribe'へのあいまいな参照Swift 3

私のViewModelはビジネスロジックを保持し、ViewControllerはUIを処理するので、このメソッドを使用すると、不要なデリゲートを避けることができます。

私の問題はこのコンパイラエラーです:Ambiguous reference to member 'subscribe'

それはまた、あなたが下の画像で見ることができるように、2人の可能な候補者を追加します。

let done = PublishSubject<Bool>() 

そして見ながら、私はそれを使用する:私のViewModelで description of error 、私はPublishSubjectとして、観察を宣言しました別のストリーム:

func subscribe() { 
    done.onNext(false) 
    anotherObservable.subscribe(

     // other events observed here but not relevant to this matter 

     onCompleted: { 
      self.done.onNext(true) 

    }).addDisposableTo(rx_disposeBag) 
} 

そして、最後に、これは私がのViewControllerでそれを処理しようとしている方法です:

self.model.done.subscribe(
    .onNext { isDone in 

     if isDone { 
      self.removeLoader() 
     } 
}).addDisposableTo(rx_disposeBag) 

シンプルなものがあると思いますが、おそらく欠けているので、どんな助けにも感謝しています。 2番目に

答えて

2

購読するには、次のようになります。

self.model.done.subscribe(onNext: { isDone in 
    if isDone { 
     self.removeLoader() 
    } 
}).addDisposableTo(rx_disposeBag) 
+0

はい。イベントを生成して処理する構文を混ぜていました。ご回答有難うございます! –

関連する問題