【问题标题】:Why `NotificationCenter+Rx` is in RxCocoa not RxSwift为什么 `NotificationCenter+Rx` 在 RxCocoa 而不是 RxSwift
【发布时间】:2018-05-23 00:40:38
【问题描述】:

因为NotificationCenterFoundation 的一部分。我希望它应该在 RxSwift 中,而不是在 RxCocoa 中。

但是为什么NotificationCenter+Rx 在 RxCocoa 中呢?这背后有什么原因吗?

在我们的一些项目中,我们只使用 RxSwift 而没有 RxCocoa。如果我们使用NotificationCenter.default.rx.notification,我们将得到错误Value of type 'Reactive<NotificationCenter>' has no member 'notification',因为NotificationCenter+Rx 仅在RxCocoa 中。

【问题讨论】:

  • 据我所知,RxSwift 只实现了 Swift 标准库中类型的 observable 属性,不包括 Foundation。
  • @Palle 好电话,我认为 RxSwift 的目标是针对独立于平台的 Swift。 Foundation 不适用于 Linux 等非 Apple 平台。

标签: ios rx-swift rx-cocoa


【解决方案1】:

简单的答案是 - RxSwift、RxJava 等是ReactiveX.io 标准的平台无关实现,例如- Observables、Operators、Subjects 等。

虽然平台特定的东西是平台特定的;-) 在我们的例子中,RxCocoa 涵盖了与其他非 Cocoa 平台无关的 NotificationCenter。

【讨论】:

  • 感谢@shai-mishali,因为 RxSwift 可以在非 Apple 平台上运行,我认为在 RxCocoa 中制作它是可以的。如果可能的话,我想将 Foundation 和 UIKit 分开。我现在把它标记为答案,希望能帮助其他有同样问题的人。
猜你喜欢
  • 1970-01-01
  • 2018-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-01
  • 2018-07-25
相关资源
最近更新 更多