__[已解决]__尝试重现Rx在cell销毁的时候发送Completed消息。
经过简化之后:
let noDieBag = DisposeBag()
/// 简化问题
func plain() {
let btn = UIButton()
btn.rx.tap
.subscribe({ (event) in
print(event)
})
.addDisposableTo(noDieBag)
}
上面的subscribe
中并不是什么都不会输出,而是收到一个Completed
事件。
当Rx
所依附的实体生命周期结束时,本身会发出最后一个Completed
事件。
然后,将其addDisposableTo
到一个生命周期比btn
长的DisposeBag
上时,这个Completed
就出现了。
首先,这并不是一个问题。Rx
的逻辑就是如此。
然后针对当前场景Cell
中,如果Cell
中出现这样的subscribe
出现deinit
的时候,
可以使用最简单的方法去处理:在填充cell的时候去重置reuseDisposeBag
,即可解决。