Rodhos Soft

備忘録を兼ねた技術的なメモです。Rofhos SoftではiOSアプリ開発を中心としてAndroid, Webサービス等の開発を承っております。まずはご相談下さい。

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")})