Rxswift: why ?

Created on 16 Nov 2016  路  7Comments  路  Source: ReactiveX/RxSwift

    @IBOutlet weak var phoneNumber: UITextField!
    @IBOutlet weak var password: UITextField!
    override func viewDidLoad() {
        super.viewDidLoad()

        let viewModel = ViewModel(phoneNumberText: phoneNumber.rx.text.asDriver(),
                                  passwordText: password.rx.text.asDriver())
     }

When i decleared viewModel, get error: 'inout UITextField' does not conform to protocol 'ReactiveCompatible'
sorry for my bad English馃槺

Most helpful comment

There is also

let viewModel = ViewModel(phoneNumberText: phoneNumber.rx.text.orEmpty.asDriver(),
                                  passwordText: password.rx.text.orEmpty.asDriver())

that has that .map { $0 ?? "" } internally.

All 7 comments

Hi, @CrazyCoderShi
What is the type of passwordText in your ViewModel?
Is it Driver<String> ?

@sergdort yes

I believe you need to do

.map { $0 ?? "" } // Observable<String>

There is also

let viewModel = ViewModel(phoneNumberText: phoneNumber.rx.text.orEmpty.asDriver(),
                                  passwordText: password.rx.text.orEmpty.asDriver())

that has that .map { $0 ?? "" } internally.

Thx @kzaher, it works.

@kzaher, it works for me , haha ,nice!

Was this page helpful?
0 / 5 - 0 ratings