我在RxSwift领域很新,显然我没有正确使用它。。。我有一个按钮,我想连接到这样一个观察者

button.rx.tap.bind(to: viewModel.someObserver).disposed(by: disposeBag)

其中,viewModel中的someObserver初始化如下:
let publishSubject = PublishSubject<Void>()
someObserver = publishSubject.asObserver()
someObservable = publishSubject.asObservable()

但是,当使用绑定创建的Disposable被释放时,同时用作PublishSubjectObserverObservable将失效,并立即释放所有新订阅。
我想使用我的PublishSubject更长的时间,并且在释放绑定后能够订阅它。如何做到这一点?

最佳答案

查看PublishRelay,它不能以错误或已完成事件终止。
将taps绑定到PublishRelay只会在释放订阅后忽略完成的事件(source),例如在释放按钮时。这将允许您稍后订阅PublishRelay

关于ios - 在RxSwift中放置绑定(bind)时,如何不使观察者无效?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56236262/

10-10 17:36