我第一次提出问题,我正在学习RxSwift,如何使用绑定和驱动程序,驱动程序和绑定之间的区别是什么。其他人学习RxSwift如果您正在学习RxSwift或Swift或OC,我希望我们能够成为朋友并相互学习。
答案 0 :(得分:15)
@iwillnot响应很好,但我会尝试用一个例子来改进它:
想象一下,你有这段代码:
let intObservable = sequenceOf(1, 2, 3, 4, 5, 6)
.observeOn(MainScheduler.sharedInstance)
.catchErrorJustReturn(1)
.map { $0 + 1 }
.filter { $0 < 5 }
.shareReplay(1)
正如@iwillnot所写:
<强>驱动程序强> 您可以从文档中详细了解驱动程序的所有内容。总之,它只是允许您依赖这些属性: - 不能出错 - 观察主调度程序 - 分享副作用
如果您使用Driver
,则无需指定observeOn
,shareReplay
或catchErrorJustReturn
。
总之,上面的代码类似于使用Driver
:
let intDriver = sequenceOf(1, 2, 3, 4, 5, 6)
.asDriver(onErrorJustReturn: 1)
.map { $0 + 1 }
.filter { $0 < 5 }
答案 1 :(得分:12)
我建议您阅读RxSwift Traits的文档,例如Driver。
Swift拥有强大的类型系统,可用于提高应用程序的正确性和稳定性,并使Rx更直观,更直观。
通过使用遵循约束的单元,如果我们尝试做一些我们不应该做的事情,我们可以依赖编译器向我们显示错误(例如,在Driver的drive
方法上执行UI代码)
这与我们使用堆栈和队列等数据结构的原因相同,具体取决于适合上下文或问题的内容。
您可以从文档中详细了解Driver is all about的内容。总之,它只允许您依赖这些属性:
在处理您的用户界面时很常见。
它的预期用例是模拟驱动应用程序的序列。
如果您有兴趣结识志同道合的新旧RxSwift-ers,请来join the RxSwift community in Slack。 :)