【发布时间】:2015-09-02 19:30:06
【问题描述】:
我有一个带有MutableProperty<Bool> 的模型,我有一个UIButton (ctaTopButton),它应该在按下该属性时翻转该属性,例如,单击时 true 变为 false,反之亦然。
我是这样设置的:
let producer = ctaTopButton.rac_signalForControlEvents(UIControlEvents.TouchUpInside).toSignalProducer()
|> map {value in !self.model.enabled.value}
// model.enabled <~ producer
我的问题的症结来自rac_signalForControlEvents(...).toSignalProducer() 返回一个SignalProducer<AnyObject?, NSError>,地图将其转换为SignalProducer<Bool, NSError>
中缀运算符<~ 但仅适用于SignalProducer<Bool, NoError>,因此我需要以某种方式转换我的生产者。
我的问题是,如何降级错误?我知道有一个promoteErrors 用于将NoError 转换为NSError。还有mapError 虽然我不知道如何取回NoError 的实例,因为它没有初始化程序。
【问题讨论】:
标签: ios swift reactive-cocoa reactive-cocoa-3