2017-08-31 55 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

是。我正在混合语法来发出和处理事件。感谢您的回答! –

相关问题