我从编译器收到一条神秘的消息,并正在尝试调试它,因为这段代码在队友的一台机器上工作。我们是否使用不同版本的 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>)'
问题
您似乎使用的是过时的 RxSwift版本。代码是正确的,它可以在我使用RxSwift 4.2.0的机器上运行。
溶液
请更新到RxSwift 4.2.0,因为它包含此 PR,Rx 团队在其中添加了用于PublishRelay
和BehaviorRelay
的bind(to:)
方法。
使用tapStartButtonRelay.asObserver()
.
最好是完全避免主题并直接绑定到按钮影响的内容。