2017-08-31 56 views
1

我是Reactive programming的新手,我試圖從我的ViewModel觀察一個布爾值,以便讓我的ViewController知道何時啓動/停止應用程序的加載器屏幕。對成員'訂閱'的歧義引用Swift 3

這很簡單,我想用這種方法來避免不必要的委託,因爲我的ViewModel包含業務邏輯,而我的ViewController處理UI。

我的問題是這個編譯器錯誤:Ambiguous reference to member 'subscribe'

它還增加了兩個可能的候選人,因爲你可以在下面的圖片中看到: description of error 在我的ViewModel,我已經聲明瞭觀察爲PublishSubject:

let done = PublishSubject<Bool>() 

我用它,同時觀察另一個流:

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) 
} 

最後,這就是我正在努力處理它在視圖控制器:

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

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

我相信有一些簡單的我可能會失蹤,所以任何幫助表示讚賞。

回答

2

在你的第二個訂閱應該是:

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

是。我正在混合語法來發出和處理事件。感謝您的回答! –

相關問題