์ด๋ฒ์๊ฐ์๋ disposable์ ๋ํด ๊ณต๋ถํด๋ณผ ๊ฒ์ ๋๋ค.
๋งค๋ฒ subscribe ํด์ฃผ๊ณ dispose(by: disposeBag)์ ๋ด์์ฃผ๋๋ฐ์
์ฌ๊ธฐ์ onDisposed๋ Observable์ด ๋ฉ๋ชจ๋ฆฌ์์ ํด์ ๋๋ฉด์ ํธ์ถ๋์ด ์ง๋๋ค. Observable์ด onNext -> error ํน์ completed ์ด๋ฒคํธ๋ฅผ ํธ์ถํ๊ณ ์ข ๋ฃ๋๋ฉด ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํด ์ค ํ์ ์์ด ์ ์์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๊ฐ ํด์ ๋์ง๋ง Rxswift ๊ณต์ ๊ฐ์ด๋๋ผ์ธ์ ๋ณด๋ฉด ์ด ๊ฒฝ์ฐ์๋ ๋ฆฌ์์ค๋ฅผ ์ ๋ฆฌํ๋ ๊ฒ์ ๊ถ๊ณ ํ๊ณ ์์ต๋๋ค.
์ด๋ Disposable ํ์ ์ ๋ชจ๋ ๋ชจ์ ํ๋ฒ์ ํด์ ํ ์ ์๊ฒ๋ ํ๋ ๋ฐฉ๋ฒ์ด DisposeBag์ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
subscribe์ ์ํ์ธ๋ฐ์. ๋ฆฌํด ํ์ ์ผ๋ก Disposable์ ๋ฐํํ๋๋ฐ ์ด๊ฒ๋ค์ DisposeBag์ ๋ด์ DisposeBag์ด ํด์ ๋๋ ์์ ์ ๋ชจ๋ ํจ๊ป ํด์ ๋์ด ์ง๊ฒ๋ ํฉ๋๋ค.
extension Disposable {
/// Adds `self` to `bag`
///
/// - parameter bag: `DisposeBag` to add `self` to.
public func disposed(by bag: DisposeBag) {
bag.insert(self)
}
}
'IOS๐ > RxSwift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[RxSwift] Driver๋ ? (feat. bind) (0) | 2022.03.21 |
---|---|
[RxSwift] Traits ์ด๋ (0) | 2022.03.19 |
[RxSwift] Combine Operator(CombineLatest, Merge, StartWith, Concat, Zip, WithLastFrom, Sample, SwitchLatest, Debounce) (0) | 2022.03.06 |
[RxSwift] 2. Subject์ Relay (0) | 2021.11.20 |
[RxSwift ] 1. Observable์ด๋ (0) | 2021.11.15 |
๋๊ธ