使用未解析的运算符'<〜'

时间:2016-12-15 02:10:48

标签: ios swift reactive-cocoa reactive-cocoa-5

我正在使用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

但要么说“&lt;〜”没有解决,要么textValues不是属性。

请帮我绑定。

1 个答案:

答案 0 :(得分: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的文件中导入模块<~