我有一个带有 a 的模型,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
因为它没有初始化程序。