我们什么时候应该在RxSwift中调用addDisposableTo(disposeBag)?

lei*_*701 11 functional-programming ios swift rx-swift

我们创建一个DisposeBag,然后Observable订阅Observable,然后addDisposableTo(disposeBag),我知道什么时候DisposeBag它会去除,它会调用dispose()释放资源,否则会导致内存泄漏.

如果Observable发送CompleteError在有限时间内终止.当Observable之前终止DisposeBagDEINIT,我有需要调用addDisposableTo(disposeBag)DisposeBag收到终止消息后,会自动释放订阅它的观察者吗?

let disposeBag = DisposeBag()

Observable.just("")
    .subscribe { event in
        print(event)
    }
    .addDisposableTo(disposeBag)
Run Code Online (Sandbox Code Playgroud)

我应该.addDisposableTo(disposeBag)明确吗?我想在发送""之后,Observable会终止并释放观察者吗?

vzs*_*zsg 9

如果你确定observable以确定的方式完成- 比如just在你的例子中使用take,或者使用takeUntil,等等 - 你可以选择不使用DisposeBag.

您可能会收到编译器警告,这实际上很好地解释了这种行为以及如何解决它.但总的来说,如果你使用DisposeBag,它会更具前瞻性.

请参阅:未使用的一次性警告