我想退订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/

10-12 03:45