Je souhaite me désabonner d'Observable dans RxSwift. Pour ce faire, j'avais l'habitude de régler le jetable à zéro. Mais il me semble qu'après la mise à jour vers RxSwift 3.0.0-beta.2 cette astuce ne fonctionne pas et que je ne peux pas me désabonner de Observable:
//This is what I used to do when I wanted to unsubscribe
var cancellableDisposeBag: DisposeBag?
func setDisposable(){
cancellableDisposeBag = DisposeBag()
}
func cancelDisposable(){
cancellableDisposeBag = nil
}
Alors peut-être que quelqu'un peut m'aider à me désinscrire correctement d'Observable?
En règle générale, il est recommandé de supprimer tous vos abonnements dans un DisposeBag. Ainsi, lorsque l'objet contenant vos abonnements est désalloué, il l'est également.
let disposeBag = DisposeBag()
func setupRX() {
button.rx.tap.subscribe(onNext : { _ in
print("Hola mundo")
}).addDisposableTo(disposeBag)
}
mais si vous avez un abonnement que vous voulez tuer avant la main, vous appelez simplement disposer () dessus quand vous le souhaitez
comme ça:
let disposable = button.rx.tap.subcribe(onNext : {_ in
print("Hallo World")
})
A tout moment, vous pouvez appeler cette méthode et vous désabonner.
disposable.dispose()
Mais sachez que lorsque vous le faites comme cela, il vous incombe de le faire désallouer.
Suivi avec réponse à la question de Shim
let disposeBag = DisposeBag()
let subscription: Disposable?
func setupRX() {
let subscription = button.rx.tap.subscribe(onNext : { _ in
print("Hola mundo")
})
subscription?.addDisposableTo(disposeBag)
}
Vous pouvez toujours appeler cette méthode plus tard
subscription?.dispose()