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

时间:2018-08-26 11:46:53

标签: swift4 ios11 rx-swift

我从编译器中获取一条神秘的消息,并试图对其进行调试,因为此代码可在队友的一台计算机上运行。我们是否使用不同版本的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>)'

2 个答案:

答案 0 :(得分:2)

问题

似乎您使用的是 RxSwift 的过时版本。该代码是正确的,它可以在我的计算机上使用 RxSwift 4.2.0 使用。

解决方案

请更新至 RxSwift 4.2.0 ,因为它包含此PR,其中Rx团队为bind(to:)和{{1}添加了PublishRelay方法}。

答案 1 :(得分:1)

使用tapStartButtonRelay.asObserver()

最好是完全避开主体并直接绑定到按钮影响的事物。