swift - 在 RxSwift 中对数组进行 combineLatest

标签 swift reactive-programming

以下代码由 Ash Furrow 在 FRP 演示期间使用 RxSwift 进行了演示。不幸的是,RxSwift 的“combineLatest”运算符最多只允许 10 个可观察对象。我正在寻找一种解决方法来获得相同的结果,但取而代之的是一系列可观察对象。

有什么想法吗?

class SignupDemoViewController: UIViewController {
  @IBOutlet weak var emailAddressTextField: UITextField!
  @IBOutlet weak var passwordTextField: UITextField!
  @IBOutlet weak var signupButton: UIButton!

  let disposeBag = DisposeBag()

  override func viewDidLoad() {
    super.viewDidLoad()

    let emailIsValid = emailAddressTextField.rx_text >- map (isEmail)
    let passwordIsValid = passwordTextField.rx_text >- map (isPassword)

    combineLatest(emailIsValid, passwordIsValid)
        >- and
        >- signupButton.rx_subscribeEnabledTo
        >- disposeBag.addDisposable

    signupButton.rx_tap
        >- signup
        >- display
        >- disposeBag.addDisposable
  }
}

最佳答案

从 RxSwift-2.0-alpha.1 版本开始支持数组版本的 combineLatest 和 zip。

希望这对您有所帮助。

关于swift - 在 RxSwift 中对数组进行 combineLatest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32216233/

相关文章:

ios - 类单例初始化不能自动完成

ios - 如何防止出列的 Collection View 单元相互重叠?

swift - 为什么 BarButton 会转到 View 底部?

java - 如何迭代 Flux 并与 Mono 混合

angular - 仅当第一次失败时才执行第二次 http 调用

java - CompletionStage、CompletableFuture Void - 返回什么?

ios - 如何覆盖 XCTest 中的 TableView 委托(delegate)

view - 如何以编程方式使用另一个 View 中的按钮从 Storyboard 中打开 UIViewController?

java - 将 observable 转换为列表

reactive-programming - 如何将 Flux<MyObject> 包装在 ResponseEntity 中