BehaviorSubject
BehaviorSubjectは最後の値を覚えていてsubscribeで即座に値が返ってくる。最初の値はこちらで指定できる。
class Temperature { private let behaviorSubject = BehaviorSubject(value:0) var behavior : BehaviorSubject<Int> { return behaviorSubject } func doSomething(x:Int) { behavior.onNext(x) } }
のように初期値入りで定義しておく。
Observableと同様に登録すると、即座に最後の値(今回は初期として渡された0)を返してくる。
_ = temperature.behavior.subscribe( onNext:{ label2.text = "\($0)"}, onError: {_ in }, onCompleted: { print("end")}, onDisposed: { print("disposed")})