요약
1. DisposeBag를 사용하지 않는 경우
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
let disposable1 = Observable.just(1)
.subscribe {
print($0)
}
let disposable2 = Observable.just(2)
.subscribe {
print($0)
}
let disposable3 = Observable.just(3)
.subscribe {
print($0)
}
deinit {
disposable1.dispose()
disposable2.dispose()
disposable3.dispose()
}
2. DisposeBag를 사용하는 경우
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
let disposeBag = DisposeBag()
Observable.just(1)
.subscribe {
print($0)
}.disposed(by: disposeBag)
Observable.just(2)
.subscribe {
print($0)
}.disposed(by: disposeBag)
Observable.just(3)
.subscribe {
print($0)
}.disposed(by: disposeBag)
disposable들을 담아두었다가 deinit 시점에 dispose 시켜줍니다.
dispose란 옵저버의 구독을 해제함으로써 메모리 정리를 해주는 작업입니다.
1과 2가 같은 동작을 하니 간편한 2번의 방식을 사용하는 것.