Swift 通用函数参数给出“;表达式类型不明确,没有更多上下文“;
我有一个函数,它接受与RxSwift相关的两个参数,并对它们进行双向绑定Swift 通用函数参数给出“;表达式类型不明确,没有更多上下文“;,swift,mvvm,rx-swift,Swift,Mvvm,Rx Swift,我有一个函数,它接受与RxSwift相关的两个参数,并对它们进行双向绑定 import Foundation import RxSwift import RxCocoa func bibind<T>(property: ControlProperty<T>, variable: Variable<T>) -> Disposable { var updating = false let bindToUIDisposable = vari
import Foundation
import RxSwift
import RxCocoa
func bibind<T>(property: ControlProperty<T>, variable: Variable<T>) -> Disposable {
var updating = false
let bindToUIDisposable = variable.asObservable().filter({ _ in
updating = !updating
return updating
}).bind(to: property)
let bindToVariable = property.filter({ _ in
updating = !updating
return updating
}).subscribe(onNext: { n in
variable.value = n
}, onCompleted: {
bindToUIDisposable.dispose()
})
return CompositeDisposable(bindToUIDisposable, bindToVariable)
}
显示编译器错误
Expression type 'Variable<String>' is ambiguous without more context
表达式类型“Variable”不明确,没有更多上下文
视图模型如下所示
import Foundation
import RxSwift
import RxCocoa
class LoginViewModel {
var userName = Variable<String>("")
var password = Variable<String>("")
init() {
userName = Variable("")
password = Variable("")
}
}
<代码>导入基础
导入RxSwift
进口RxCocoa
类LoginViewModel{
var userName=变量(“”)
var password=变量(“”)
init(){
用户名=变量(“”)
密码=变量(“”)
}
}
类型不匹配
userNameTextField.rx.text
返回一个可观察的
,并且您的变量是一个可观察的
。您可以使用userNameTextField.rx.text.orEmpty
中的orEmpty
来修复此问题
通常,当您看到此错误时,表示类型不匹配,您需要通过更改其中一个对象的类型来修复此错误。类型不匹配
userNameTextField.rx.text
返回一个可观察的
,并且您的变量是一个可观察的
。您可以使用userNameTextField.rx.text.orEmpty
中的orEmpty
来修复此问题
通常,当您看到此错误时,表示类型不匹配,您需要通过更改其中一个对象的类型来修复此错误。谢谢!你让我开心!谢谢你让我开心!
import Foundation
import RxSwift
import RxCocoa
class LoginViewModel {
var userName = Variable<String>("")
var password = Variable<String>("")
init() {
userName = Variable("")
password = Variable("")
}
}