使用RxSwift,驱动程序并绑定到

时间:2017-03-29 14:54:47

标签: rx-swift

我第一次提出问题,我正在学习RxSwift,如何使用绑定和驱动程序,驱动程序和绑定之间的区别是什么。其他人学习RxSwift如果您正在学习RxSwift或Swift或OC,我希望我们能够成为朋友并相互学习。

2 个答案:

答案 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,则无需指定observeOnshareReplaycatchErrorJustReturn

总之,上面的代码类似于使用Driver

的代码
let intDriver = sequenceOf(1, 2, 3, 4, 5, 6)
    .asDriver(onErrorJustReturn: 1)
    .map { $0 + 1 }
    .filter { $0 < 5 }

More details

答案 1 :(得分:12)

我建议您阅读RxSwift Traits的文档,例如Driver。

为什么要使用Traits?

  

Swift拥有强大的类型系统,可用于提高应用程序的正确性和稳定性,并使Rx更直观,更直观。

通过使用遵循约束的单元,如果我们尝试做一些我们不应该做的事情,我们可以依赖编译器向我们显示错误(例如,在Driver的drive方法上执行UI代码)

这与我们使用堆栈和队列等数据结构的原因相同,具体取决于适合上下文或问题的内容。

驱动程序

您可以从文档中详细了解Driver is all about的内容。总之,它只允许您依赖这些属性:

  • 无法出错
  • 观察主调度程序
  • 分享副作用

在处理您的用户界面时很常见。

为什么它被命名为Driver

  

它的预期用例是模拟驱动应用程序的序列。

社区

如果您有兴趣结识志同道合的新旧RxSwift-ers,请来join the RxSwift community in Slack。 :)

  • 报价从RxSwift的文档中解除。