我有一个带有UIButton
的模型,我有一个let producer = ctaTopButton.rac_signalForControlEvents(UIControlEvents.TouchUpInside).toSignalProducer()
|> map {value in !self.model.enabled.value}
// model.enabled <~ producer
(ctaTopButton),当它被按下时应该翻转该属性,例如,点击true变为false,反之亦然。
我这样设置:
rac_signalForControlEvents(...).toSignalProducer()
我的问题的关键来自SignalProducer<AnyObject?, NSError>
返回SignalProducer<Bool, NSError>
,地图转换为<~
中缀运算符SignalProducer<Bool, NoError>
只适用于promoteErrors
所以我需要以某种方式转换我的制作人。
我的问题是,如何降低错误?我知道有一个NoError
用于将NSError
转换为mapError
。还有NoError
虽然我无法弄清楚如何获取std::queue<std::vector<Hooks>> Hooks_queue;
的实例,因为它没有初始化器。
答案 0 :(得分:4)
对于这种情况,您可以使用catch()
运算符,如:
let producer = ctaTopButton.rac_signalForControlEvents(.TouchUpInside).toSignalProducer()
|> map { value in !self.model.enabled.value }
|> catch { _ in SignalProducer<Bool, NoError>.empty }