We create a DisposeBag
, and a Observable
, subscribe the Observable
and then addDisposableTo(disposeBag)
, I know when the DisposeBag
is going to deinit, it will call dispose()
to release resources otherwise it will lead memory leak.
If the Observable
send Complete
or Error
that terminate in finite time. When the Observable
terminate before DisposeBag
deinit, do I have the need to call addDisposableTo(disposeBag)
? Does DisposeBag
automatically release the observer that subscribed to it when it received terminated message?
let disposeBag = DisposeBag()
Observable.just("🔴")
.subscribe { event in
print(event)
}
.addDisposableTo(disposeBag)
Should I have to .addDisposableTo(disposeBag)
explicitly? I think after sending "🔴", the Observable
will terminate and releasing the observer?
If you are certain that the observable completes in a deterministic way - like using just
in your example, or using take
, takeUntil
, etc. -, you may choose to not use the DisposeBag.
You might get a compiler warning, that actually explains this behavior well and how to work around it. But in general, it is more future-proof if you use DisposeBag anyway.
See: Unused disposable warning
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With