Rodhos Soft

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

Observable

次のようなクラスを定義する。

class Temperature {
    private let eventSubject = PublishSubject<Int>()
    var event: Observable<Int> {
        return eventSubject
    }
    
    func doSomething(x:Int) {
        eventSubject.onNext(x)
    }
    
}

テキストフィールドの編集が終わったタイミングで数を数えるということにしてみた。正しい書き方かはわからない。

        _ = textFiled?.rx.controlEvent(UIControlEvents.editingDidEnd).subscribe { event in
            self.temperature.doSomething(x: self.textFiled!.text!.lengthOfBytes(using: .utf16))
        }
        
        disposeTemp = temperature.event.subscribe(
            onNext: {print("\($0)")}
            , onError: {_ in },
              onCompleted: { print("end")},
              onDisposed: { print("diposed")}
        )

とめたいときはdisposeTempをdispose()すれば良い。