Значение текстового поля для ProprtyType с Reactive Cocoa 4

Я пытаюсь сопоставить содержимое текстового поля с ProprtyType. У меня есть свойство в модели представления:

var property = MutableProperty<Int?> (nil)

И я хотел связать его в viewDidLoad

let producer = textField.rac_textSignal().toSignalProducer().map { text in Int(text as! String) }
viewModel.property <~ producer

но я получаю ошибку, которую я не понимаю:

Бинарный оператор «‹~» не может применяться к операндам типа «MutableProperty» (он же «MutableProperty>») и «SignalProducer» (он же «SignalProducer, NSError>»).

Что я делаю неправильно?


person Tomasz Bąk    schedule 06.10.2015    source источник


Ответы (1)


Поскольку оператор связывания ‹~ требует, чтобы тип ошибки производителя сигнала был NoError. Так что поймайте любую ошибку, используя flatMapError:

let producer = textField.rac_textSignal().toSignalProducer()
    .flatMapError { error in
        return SignalProducer<AnyObject?, NoError>.empty
    }
    .map { text in Int(text as! String) }

property <~ producer
person Cosyn    schedule 06.10.2015
comment
Спасибо за помощь. Теперь я понимаю. - person Tomasz Bąk; 06.10.2015