Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 我怎样才能转换;信号发生器<;布尔,诺尔>&引用;至;信号发生器<;布尔,N错误>&引用;反应性可可粉3?_Ios_Swift_Reactive Cocoa_Reactive Cocoa 3 - Fatal编程技术网

Ios 我怎样才能转换;信号发生器<;布尔,诺尔>&引用;至;信号发生器<;布尔,N错误>&引用;反应性可可粉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

我尝试创建ReactiveCocoa 3的
操作
实例

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升级的特定情况非常有用,感谢您指出这一点!我已经修改了答案。