Arrays RxSwift:观察可观测数组中的每个元素可观测属性
我有一份球员名单,我希望每个球员的耐力都能被观察到,而观察者应该是相同的。(可能是分享观察员)Arrays RxSwift:观察可观测数组中的每个元素可观测属性,arrays,swift,reactive-programming,rx-swift,Arrays,Swift,Reactive Programming,Rx Swift,我有一份球员名单,我希望每个球员的耐力都能被观察到,而观察者应该是相同的。(可能是分享观察员) 因此,每当player1.stamina==0时,我就可以从列表中删除player1,但现在只需要观察player2。您可以使用Observable.combinelateest组合数组元素属性中的所有最新事件 这是对我有效的解决方案 class Player { let stamina = Variable(0) } // ViewController let disposeBag = D
因此,每当player1.stamina==0时,我就可以从列表中删除player1,但现在只需要观察player2。您可以使用Observable.combinelateest组合数组元素属性中的所有最新事件 这是对我有效的解决方案
class Player {
let stamina = Variable(0)
}
// ViewController
let disposeBag = DisposeBag()
// Array
let playerList: Variable<[Player]> = Variable([])
// Observing each player stamina at once
playerList.asObservable()
.flatMapLatest { players -> Observable<[Int]> in
let playerStaminaObservableList = players.map { $0.stamina.asObservable() }
return Observable.combineLatest { playerStaminaObservableList }
}
.subscribe(onNext: {
print("List of playerStamina: \($0)")
})
.disposed(by: disposeBag)
职业玩家{
让耐力=变量(0)
}
//视图控制器
设disposeBag=disposeBag()
//排列
let playerList:Variable=Variable([])
//同时观察每个球员的耐力
playerList.asObservable()
.flatmap最新{玩家->在
让playerStaminaObservableList=players.map{$0.stamina.asObservable()}
返回可观察的.CombineTest{playerStaminaObservableList}
}
.订阅(onNext:{
打印(“播放列表Tamina:\($0)”)
})
.处置(由:处置人)
请随意更正任何错误。从RxSwift v4.0开始,变量已被弃用。我只是知道。那么,在不推荐使用变量之后,应该使用什么呢?感谢您提供的信息。当前推荐的此API的替代品是
RxCoCoCoA.BehaviorRelay
您能给我一个链接吗?我需要更多地了解这一变化。谢谢@iWheelBuy@muizmoses
class Player {
let stamina = Variable(0)
}
// ViewController
let disposeBag = DisposeBag()
// Array
let playerList: Variable<[Player]> = Variable([])
// Observing each player stamina at once
playerList.asObservable()
.flatMapLatest { players -> Observable<[Int]> in
let playerStaminaObservableList = players.map { $0.stamina.asObservable() }
return Observable.combineLatest { playerStaminaObservableList }
}
.subscribe(onNext: {
print("List of playerStamina: \($0)")
})
.disposed(by: disposeBag)