繁体   English   中英

了解 RxSwift 中的保留周期

[英]Understanding retain cycles in RxSwift

如果我有以下代码

func handle(showEmptyView: Driver<Bool>) {
    showEmptyView
        .drive(onNext: setEmptyViewShown)
        .disposed(by: disposeBag)
}

func setEmptyViewShown(_ show: Bool) {
    tableView.isHidden = !show
    emptyView.isHidden = show
}

当我调用setEmptyViewShown因为我不使用weakunowned的自我时,这是一个保留周期吗?

是的,有一个保留周期,因为setEmptyViewShown(_:)是一种将self作为隐式第一个参数的方法。

更好的是:

disposeBag.insert(
    showEmptyView.bind(to: emptyView.rx.isHidden),
    showEmptyView.map { !$0 }.bind(to: tableView.rx.isHidden)
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM