Skip to content

Instantly share code, notes, and snippets.

@shoheiyokoyama
Created August 3, 2017 01:01
Show Gist options
  • Save shoheiyokoyama/9608c0695de6231a70d5f53c3f58485f to your computer and use it in GitHub Desktop.
Save shoheiyokoyama/9608c0695de6231a70d5f53c3f58485f to your computer and use it in GitHub Desktop.
let disposeBag = DisposeBag()
struct Player {
var level: Variable<Int>
}
// players
let killua = Player(level: Variable(50))
let gon = Player(level: Variable(50))
let player = PublishSubject<Player>()
player.asObservable()
.flatMap { $0.level.asObservable() }
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)
player.onNext(killua) // 50
killua.level.value = 51 // 51
player.onNext(gon) //50
gon.level.value = 51 // 51
killua.level.value = 52 // 52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment