繁体   English   中英

如何使用RxSwift观察数组中的值

[英]How to observe the value in array with RxSwift

有班有布尔的财产

class Coupon: NSObject {
    var invalid: Bool = false
}

我创建一个数组[Coupon],我需要将coupon.invalid一次修改为true。当所有这些coupon.invalid == true时,我就可以处理下一个任务,如何使用RxSwift实现此逻辑?帮帮我~~

首先,使Coupon类型成为结构而不是类。

struct Coupon {
    var invalid = false
}

并将您的数组嵌入变量中。

let coupons = Variable<[Coupon]>([])
coupons.value = getAllTheCoupons()

现在,您可以创建一个可观察值,每当所有值都为true时便会发出一个值。

let allTrue = coupons.asObservable()
    .map { coupons in
        coupons.contains(where: { $0.invalid == false }) == false
    }
    .filter { $0 }

allTrue.subscribe(onNext: { _ in
    print("process next task.")
}).disposed(by: bag)

暂无
暂无

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

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