我想退订RxSwift中的Observable。为此,我曾经将Disposable设置为nil。但是在我看来,在更新到RxSwift 3.0.0-beta.2之后,此技巧不起作用,并且我无法退订Observable:
//This is what I used to do when I wanted to unsubscribe
var cancellableDisposeBag: DisposeBag?
func setDisposable(){
cancellableDisposeBag = DisposeBag()
}
func cancelDisposable(){
cancellableDisposeBag = nil
}
那么也许有人可以帮助我如何正确地从Observable退订?
最佳答案
通常,最好将所有订阅都放在DisposeBag中,这样,当包含订阅的对象被释放时,它们也会被释放。
let disposeBag = DisposeBag()
func setupRX() {
button.rx.tap.subscribe(onNext : { _ in
print("Hola mundo")
}).addDisposableTo(disposeBag)
}
但是,如果您有订阅,则想先将其杀死,只需在需要时对其调用dispose()即可。
像这样:
let disposable = button.rx.tap.subcribe(onNext : {_ in
print("Hallo World")
})
任何时候您都可以调用此方法并取消订阅。
disposable.dispose()
但是请注意,当您这样做时,有责任将其释放。
关于ios - 如何在RxSwift中取消订阅Observable?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39996937/