- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
passWordInputView.inputTextField.rx.controlEvent(.editingDidEnd)
.bindTo(loginButton.rx.tap)
.disposed(by: disposeBag)
密码修改完成后登录
但出现错误:输入“inout UIButton”不符合协议(protocol)“ReactiveCompatible”
最佳答案
因为 RxSwift 包含 the following line ,当您为任何 NSObject 子类(UIKit 中的任何内容)收到此错误时,您可以非常确定是其他原因给编译器带来了麻烦。
extension NSObject: ReactiveCompatible { }
根据我的经验,当尝试错误地使用 rx 方法或运算符或者存在语法错误时,会发生此错误。
例如,当我尝试像这样合并两个流时,collectionView 出现了这个错误
Observable.merge(collectionView.rx.streamOne, streamTwo)
但是合并两个流的正确方法是
Observable.of(collectionView.rx.streamOne, streamTwo).merge()
(注意看起来静态 Observable.merge 是在 RxSwift 3.4 中添加的)
您正在尝试绑定(bind)来自 inputTextField.rx.controlEvent(.editingDidEnd)
的流这是Observable<Void>
至 loginButton.rx.tap
这是一个Observable,而不是一个Observer。英语,button.rx.tap
是用来观察的,而不是用来观察的。
你也可以这样做
inputTextField.rx.controlEvent(.editingDidEnd)
.subscribe(onNext: { [unowned self] in
self.inputTextField.userInteractionEnabled = false
self.doLogin()
}
您还可以合并来自按钮和文本字段的流,如上所述:)
关于ios - 类型 'inout UIButton' 不符合协议(protocol) 'ReactiveCompatible',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42871040/
passWordInputView.inputTextField.rx.controlEvent(.editingDidEnd) .bindTo(loginButton.rx.tap)
我正在尝试将“acceptGesture”的可观察对象发送到 View 模型承包商中。但是,xCode 不断抛出错误“类型“inout UITapGestureRecognizer”不符合协议(pro
我是一名优秀的程序员,十分优秀!