繁体   English   中英

RxSwift中array上的CombineLatest

[英]combineLatest on array in RxSwift

下面的代码是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的阵列版本。

希望这可以帮助。

现在是Observable.combineLatest(array)而不是array.combineLatest

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM