iOS RXSwift4 无法使用类型为“(to: PublishRelay<Void>)”的参数列表调用 'bind'

iOS RXSwift4 Cannot invoke 'bind' with an argument list of type '(to: PublishRelay<Void>)'

我从编译器收到一条神秘消息,我正在尝试调试它,因为这段代码在队友的一台机器上运行。我们使用不同版本的 RXSwift 吗?

如何将 UIButton.rx 绑定到 Void 类型的 PublishRelay?

import SnapKit
import RxSwift
import RxCocoa


var startButton: UIButton
var tapStartButtonRelay: PublishRelay<Void>

startButton.rx.tap
           .bind(to: tapStartButtonRelay)
//get Cannot invoke 'bind' with an argument list of type '(to: PublishRelay<Void>)'

使用tapStartButtonRelay.asObserver()

最好完全避开主题并直接绑定到按钮影响的东西。

问题

看来您使用的是 RxSwift 的过时版本。代码是正确的,它在我的机器上运行 RxSwift 4.2.0.

解决方案

请更新到 RxSwift 4.2.0 因为它包含此 PR,Rx 团队在其中为 PublishRelay 添加了 bind(to:) 方法和 BehaviorRelay.