Observable
まず、Observableの前にmableチャートを説明したいと思います.
Rxを勉強すると、以下の画像がよく見られます.
の上には、行が新しく入力され、左から右に流れます. の最後のパリティペアは、ストリームがこれ以上低下しないことを意味する. の間でboxは、入力値を計算する演算子である. の一番下の行は、演算によって得られた値を表します.
実際には観測できないか、理解しやすいように、「後からあるデータ」を例に挙げます.
これはRxコンテンツの全てだと思います.
単純に「後からあるデータ」を「観測可能」に変えて考えれば理解できる.
上記の内容を実際の観測性として実現しましょう.
単語を訳すと「処理可能」です.
こいつが購読しなくなったとき、購読をやめたいときに使います.
やらないとメモリがあります.
実際には、ViewControllerがシャットダウンまたはシャットダウンした場合に、この処理を行うことが最も多く使用される場合があります.
次に、処理の例を示します.
Rxを勉強すると、以下の画像がよく見られます.
以降のデータ
実際には観測できないか、理解しやすいように、「後からあるデータ」を例に挙げます.
class 나중에생기는데이터<T> {
private let task: (@escaping (T) -> Void) -> Void
init(task: @escaping (@escaping (T) -> Void) -> Void) {
self.task = task
}
func 나중에오면(_ f: @escaping (T) -> Void) {
task(f)
}
}
func downloadSomething() -> 나중에생기는데이터<String?> {
//생성 시점에 비동기 코드를 넣어준다.
return 나중에생기는데이터() { f in
//비동기처리
//나중에 왔다는 가정
f()
}
}
func load() {
let data = downloadSomething()
data.나중에오면 { json in
//ui 처리등
}
}
以上、Rxのコアコンテンツです.これはRxコンテンツの全てだと思います.
単純に「後からあるデータ」を「観測可能」に変えて考えれば理解できる.
上記の内容を実際の観測性として実現しましょう.
func downloadSomething() -> Observable<String?> {
return Observable.create() { emitter in
//비동기처리
비동기 { response in
emitter.onNext(data)
emitter.error("")
emitter.complete()
//Disposable을 리턴하게 되는데,
//아래에서 한번 더 정리해보겠다.
return Disposable.create()
}
}
}
func load() {
//위의 예시에선 바로 데이터를 내려주었지만
//실제 Observable은 event라는 녀석을 내려준다.
//그곳에 내려오는 데이터 / 에러 / 더이상 내려오지 않는 컴플릿까지 상태를 내려올 수가 있다.
let _ = downloadSomething().subscribe { event in
switch event {
case let .next(json):
//내려오는 값
case .completed:
break
case .error:
break
}
}
}
Disposable
単語を訳すと「処理可能」です.
こいつが購読しなくなったとき、購読をやめたいときに使います.
やらないとメモリがあります.
実際には、ViewControllerがシャットダウンまたはシャットダウンした場合に、この処理を行うことが最も多く使用される場合があります.
次に、処理の例を示します.
import RxSwift
class SomeViewController: UIViewController {
//이 DisposeBag은 Disposable들을 담을 수 있는 클래스이다.
//해당 클래스가 메모리에서 해제되면 가방안에 있는 모든 Disposable들도 같이 해제된다.
let disposeBag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
Observable.of("A", "B", "C")
.subscribe {
print($0)
}
.disposed(by: disposeBag)
//위의코드로 Disposeable을 담아둔다.
}
}
}
Reference
この問題について(Observable), 我々は、より多くの情報をここで見つけました https://velog.io/@elile-e/Observableテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol