如何在 Objective-C 代码的项目中使用 RxSwift?

How to use RxSwift in project with Objective-C code?

我在一个混合了 Objective-C 和 Swift 的旧项目中工作,Objective-C 中有很多遗留代码,因此将所有内容迁移到 Swift 是不现实。新代码用 Swift 编写,但 Objective-C 需要通过小更新进行维护。

我最近一直在使用 RxSwift,我也想开始在这个旧项目中使用。

问题是 Objective-C <-> Swift 互操作性。

例如我不会写这个:

@objc let int = BehaviorSubject<Int>(value: 42)

因为我得到 属性 cannot be marked @objc because its type cannot be represented in Objective-C

我该如何处理这种情况?有人在混合 objc/swift 项目中使用 RxSwift 吗?

RxSwift 的核心是 Event 具有关联值的枚举。此枚举无法移植到 Objective-C.

你的问题的答案是......你不能在 Objective-C 代码中使用 RxSwift。

另一种方法是在您的 Objective-C 代码中使用 ReactiveObjC,并将 RxSwift Observables 映射到 ReactiveObjC Signals。