gpt4 book ai didi

ios - 如何在 ReactiveCocoa (Swift) 中将 NSError SignalProducer 转换为 NoError SignalProducer

转载 作者:可可西里 更新时间:2023-11-01 00:52:56 24 4
gpt4 key购买 nike

我有一个带有 MutableProperty<Bool> 的模型我有一个 UIButton (ctaTopButton) 应该在按下时翻转该属性,例如,单击时 true 变为 false,反之亦然。

我是这样设置的:

let producer = ctaTopButton.rac_signalForControlEvents(UIControlEvents.TouchUpInside).toSignalProducer()
|> map {value in !self.model.enabled.value}


// model.enabled <~ producer

我的问题症结来自rac_signalForControlEvents(...).toSignalProducer()返回 SignalProducer<AnyObject?, NSError> map 转换为 SignalProducer<Bool, NSError>

中缀运算符 <~然而只适用于 SignalProducer<Bool, NoError>所以我需要以某种方式转换我的制作人。

我的问题是,如何降低错误?我知道有一个 promoteErrors用于转换 NoErrorNSError .还有mapError虽然我不知道如何取回 NoError 的实例因为它没有初始化器。

最佳答案

对于这种情况,您可以使用 catch() 运算符,例如:

let producer = ctaTopButton.rac_signalForControlEvents(.TouchUpInside).toSignalProducer()
|> map { value in !self.model.enabled.value }
|> catch { _ in SignalProducer<Bool, NoError>.empty }

关于ios - 如何在 ReactiveCocoa (Swift) 中将 NSError SignalProducer 转换为 NoError SignalProducer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30893686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com