Использование неразрешенного оператора '<~'
Я использую 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
в файлах, которые вы используете <~
,