Swift 通用函数参数给出“;表达式类型不明确,没有更多上下文“;

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

我有一个函数,它接受与RxSwift相关的两个参数,并对它们进行双向绑定

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("")
    }
}