簡體   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