- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我怎么映射这个
func save() -> SignalProducer<Void, NetworkError>
到
var saveAction: Action<AnyObject, Bool, NoError>
我对语法有点困惑
service.save()
.observeOn(QueueScheduler.mainQueueScheduler)
.map<Bool>( _ in true) // how to map void to bool
.flatMapError {
error in
// how to map to a NoError?
}
此外,使用 Action 的最佳实践应该是什么?NetworkError 是否应该冒泡到 Controller ,以便它可以在弹出对话框中显示错误?
最佳答案
你问了 3 件事,让我们一一说:
- Going from a
Void
toBool
假设您有一个 foo: SignalProducer<Void, Error>
:
let bar: SignalProducer<Bool, Error> = foo.map { _ in true}
- Going from a
NetworkError
to aNoError
这不直观,但您可以利用 Swift 的类型推断并执行如下操作:
let bar: SignalProducer<Void, NoError> = foo.flatMapError { _ in SignalProducer.empty }
你的 func save() -> SignalProducer<Void, NetworkError>
然后可以变成:
let save: SignalProducer<Void, NetworkError> = ...
let newSave: SignalProducer<Bool, NoError> = save.map {_ in true}.flatMapError { _ in SignalProducer.empty }
- should the NetworkError bubble up to the controller so it can display the error in a Popup dialog?
最终您必须将错误转换为可读的内容。 Controller (假设我们正在谈论 UIViewController
)可以利用辅助实体将此错误转换为一个字符串或一对字符串(标题 + 正文)。如果您使用的是 MVVM,即 ViewModel,是否会进行这种转换。
关于ios - 如何在 SignalProducer 上映射值和错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36159216/
假设我有一个 SignalProducer启动时发出一个元素数组。 我想转换 SignalProducer到一个新的SignalProducer发出 [Element] 的每个元素连续排列。 这样做的
我有一个带有 MutableProperty 的模型我有一个 UIButton (ctaTopButton) 应该在按下时翻转该属性,例如,单击时 true 变为 false,反之亦然。 我是这样设置
我尝试创建一个 Action 的实例ReactiveCocoa 3. let action: Action = Action { _ in if self.flag { ret
给定函数 multiply() 和 convert()(概念的最小示例,我实际上计划在每个函数中查询远程服务器),什么是实现 multiplyAndConvert() 的更短方法? // call t
假设我在数组中有一堆 SignalProducer: [SignalProducer] 我如何将它们组合起来得到一个 SignalProducer 等待所有这些并获得所有 Car? SignalPro
我有一个包含数组的 SignalProducer,我只想观察新的更改,而不是在观察时获取整个数组 我尝试了 flatMap .latest 但它不起作用 有人知道如何做到这一点吗? 最佳答案 我相信
我怎么映射这个 func save() -> SignalProducer 到 var saveAction: Action 我对语法有点困惑 service.save() .
这可能是 Swift 的问题,或者只是我不了解泛型在 Swift 中的工作方式,但我在使用以下代码示例时遇到编译器错误/崩溃,我不明白为什么 import Foundation import Reac
我觉得我理解了 ReactiveCocoa 的所有基本组件(概念上),通过理解如何将所有部分连接在一起仍然有点困惑。 例如,在阅读了 Signal 之后,我完全希望 SignalProducer 只有
我正在 iOS 项目中使用 ReactiveSwift 3.x,但无法将一个 SignalProducer 提供的错误映射到另一个错误。 我的NoError SignalProducer是: func
由于我是响应式(Reactive)编程的新手,所以我对在 ReactiveSwift 中链接 SignalProducers 有一些初学者的问题。我的目标是创建一个 SignalProducers 链
我是否有责任维护对 Signal 或 SignalProducer 的引用,例如,使用实例变量? 换句话说,当它们被释放时,它们会自动消失并停止发送事件吗? 最佳答案 仅供引用,没有必要,Signal
我正在尝试学习 ReactiveSwift 和 ReactiveCocoa。我可以很好地使用 Signal 和 Property,但我在使用 SignalProducer 时遇到了问题。 据我了解,S
我正在使用 ReactiveCocoa 并且我有几个 SignalProducers let center = NSNotificationCenter.defaultCenter() let sig
我正在尝试将 API SignalProducers 转换为枚举,以便获得“正在加载”、“失败”和“已加载”状态。枚举是: enum DataLoadState{ case Loading
我的应用程序顶部有一个状态区域,显示进度信息(类似于 Xcode 和 iTunes)。我想通过将副作用注入(inject)事件流来更新它,使用将流的值转换为 ProgressUpdate 值的闭包。我
我有一个具有几个不同功能的 View 模型,如下所示: func somethingSignal() -> SignalProducer { return SignalProducer {
我有一个 SignalProducer ProducerA,它以不同的时间间隔发出值。我正在尝试收集 SignalProducer 发出的最新 N 个值并创建一个新的生产者 ProducerB,它发出
我有一个委托(delegate)对象。有 6 个委托(delegate)回调通知委托(delegate)有关事物的状态。我有一个 MySpecialEvent代表这些状态的快速枚举。你能帮我弄清楚如何
我正在使用 Swift 3 开发一个 iOS 应用程序,使用 ReactiveSwift 1.1.1、MVVM + Flow Coordinator 模式和 Firebase 作为后端。我最近才开始适
我是一名优秀的程序员,十分优秀!