没有初始化程序,有Driver

时间:2016-08-10 06:53:54

标签: swift rx-swift

我不明白为什么Driver(在RxSwift中)抱怨初始化程序:

class LoginVM
{
    let userName : Driver<String>?
    let password : Driver<String>?
}

我也尝试过隐式解包,但是编译器说类LoginVM没有初始化器。我该如何解决这个问题?感谢

1 个答案:

答案 0 :(得分:3)

Swift要求let常量始终在init完成时初始化。因此,您可以将其保留为let常量并在init中设置值,也可以将其更改为var并将其设为可选,并仅声明它。

使用let初始化init 推荐

class LoginVM {
    let userName : Driver<String>

    init() {
        userName = Variable<String>("some initial string").asDriver()
    }
}

Optional var,仅声明不推荐

class LoginVM {
    var userName : Driver<String>?
}