对成员的引用不明确 'subscribe' Swift 3

Ambiguous reference to member 'subscribe' Swift 3

我是 Reactive 编程的新手,我正在尝试从我的 ViewModel 观察一个布尔值,以便让我的 ViewController 知道何时 start/stop 应用程序的加载器屏幕。

这很简单,我想使用这种方法来避免不必要的委托,因为我的 ViewModel 包含业务逻辑,而我的 ViewController 处理 UI。

我的问题是这个编译器错误:Ambiguous reference to member 'subscribe'

它还添加了两个可能的候选者,如下图所示: 在我的 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)
}

最后,这就是我在 ViewController 中尝试处理它的方式:

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

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

我相信我可能遗漏了一些简单的东西,因此非常感谢您的帮助。

在您的第二个订阅中应该是:

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