Как я могу преобразовать "SignalProducer<Bool, NoError>" в "SignalProducer<Bool, NSError>" ReactiveCocoa 3?
Я пытался создать экземпляр Action<AnyObject?, Bool, NSError>
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>
}
}
Этот код не может скомпилировать с ошибкой 'SignalProducer<Bool, NoError>' is not convertible to 'SignalProducer<Bool, NSError>'
,
Как я могу конвертировать SignalProducer<Bool, NoError>
в SignalProducer<Bool, NSError>
?
1 ответ
Решение
Вы можете использовать mapError
оператор. Что-то вроде:
self.fooSignalProducer |> mapError { _ in NSError() }
Редактировать:
Как Джастин указывает ниже, promoteErrors
специально разработан для этого случая:
self.fooSignalProducer |> promoteErrors(NSError)