Использование неразрешенного оператора '<~'

Я использую ReactiveCocoa 5.0 alpha 3, ReactiveSwift и Swift 3

У меня проблемы с привязкой моего UITextField к MutableProperty.

В ReactiveCocoa 4 я использовал это:

extension UITextField {
    func signalProducer() -> SignalProducer<String, NoError> {
        return self.rac_textSignal().toSignalProducer()
            .map { $0 as! String }
            .flatMapError { _ in return SignalProducer<String, NoError>.empty }
    }
}

viewModel.email <~ emailTextField.signalProducer()

Но сейчас в ReactiveCocoa 5 я не могу этого сделать. Из того, что я понимаю, я должен сделать что-то вроде этого, я думаю:

viewModel.email <~ emailTextField.reactive.textValues

Но либо он говорит, что "<~" не решено, либо textValues ​​не является свойством.

Пожалуйста, помогите мне связать это.

1 ответ

<~ в Rac5 есть функция для привязки BindingTarget с сигналом, вы можете использовать его так:

placeHolderLabel.reactive.isHidden <~
        self.reactive
        .values(forKeyPath: #keyPath(passwordTF.text))
        .map({ (value) -> Bool in
            let value = value as! String
            return !value.isEmpty
        })

или это:

let buttonEnabled = MutableProperty<Bool>(false)

button.reactive.isEnabled <~ buttonEnabled

И убедитесь, что вы импортировали модуль ReactiveSwift в файлах, которые вы используете <~,

Другие вопросы по тегам