我尝试创建一个ReactiveCocoa 3的Action<AnyObject?, Bool, NSError>
实例。
let action: Action<AnyObject?, Bool, NSError> = Action { _ in
if self.flag {
return self.fooSignalProducer // SignalProducer<Bool, NoError>
} else {
return self.barSignalProducer // SignalProducer<Bool, NSError>
}
}
此代码无法使用错误'SignalProducer<Bool, NoError>' is not convertible to 'SignalProducer<Bool, NSError>'
进行编译。
如何将SignalProducer<Bool, NoError>
转换为SignalProducer<Bool, NSError>
?
答案 0 :(得分:9)
您可以使用mapError
运算符。有点像:
self.fooSignalProducer |> mapError { _ in NSError() }
修改强>
正如Justin在下面指出的那样,promoteErrors
专为此案例而设计:
self.fooSignalProducer |> promoteErrors(NSError)