2017-07-29 3 views
0

Il est classe une propriété BoolComment observer la valeur dans le tableau avec RxSwift

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

créer un tableau [Coupon], je dois modifier le coupon.invalid à vrai par tous one.when de ces coupon.invalid == true, alors je peux traiter la prochaine tâche, Comment puis-je implémenter cette logique avec RxSwift? S'il vous plaît aidez-moi ~~

Répondre

0

D'abord vous faites de votre coupon un type struct au lieu d'une classe.

struct Coupon { 
    var invalid = false 
} 

Et d'intégrer votre tableau dans une variable.

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

Vous pouvez maintenant créer une observable qui émet une valeur lorsque toutes les valeurs sont vraies.

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)