Ios 我怎样才能转换;信号发生器<;布尔,诺尔>&引用;至;信号发生器<;布尔,N错误>&引用;反应性可可粉3?
我尝试创建ReactiveCocoa 3的Ios 我怎样才能转换;信号发生器<;布尔,诺尔>&引用;至;信号发生器<;布尔,N错误>&引用;反应性可可粉3?,ios,swift,reactive-cocoa,reactive-cocoa-3,Ios,Swift,Reactive Cocoa,Reactive Cocoa 3,我尝试创建ReactiveCocoa 3的操作实例 let action: Action<AnyObject?, Bool, NSError> = Action { _ in if self.flag { return self.fooSignalProducer // SignalProducer<Bool, NoError> } else { return self.barSignalProducer // Sign
操作
实例
let action: Action<AnyObject?, Bool, NSError> = Action { _ in
if self.flag {
return self.fooSignalProducer // SignalProducer<Bool, NoError>
} else {
return self.barSignalProducer // SignalProducer<Bool, NSError>
}
}
let action:action=action{uu}in
如果自我标记{
return self.fooSignalProducer//SignalProducer
}否则{
返回self.barSignalProducer//SignalProducer
}
}
此代码无法编译,出现错误“SignalProducer”不能转换为“SignalProducer”
如何将
SignalProducer
转换为SignalProducer
?您可以使用maperor
操作符。大致如下:
self.fooSignalProducer |> mapError { _ in NSError() }
编辑:
正如Justin在下面指出的,
promoteErrors
是专门为这种情况设计的:
self.fooSignalProducer |> promoteErrors(NSError)
promoteErrors()
对于从NoError
@JustinSpahr Summers升级的特定情况非常有用,感谢您指出这一点!我已经修改了答案。