如果我有以下代码
func handle(showEmptyView: Driver<Bool>) {
showEmptyView
.drive(onNext: setEmptyViewShown)
.disposed(by: disposeBag)
}
func setEmptyViewShown(_ show: Bool) {
tableView.isHidden = !show
emptyView.isHidden = show
}
当我调用 setEmptyViewShown
因为我不用 weak
或 unowned
自我?
是的,有一个保留周期,因为 setEmptyViewShown(_:)
是一种方法,它以 self
作为隐含的第一个参数。
更好的做法是:
disposeBag.insert(
showEmptyView.bind(to: emptyView.rx.isHidden),
showEmptyView.map { !$0 }.bind(to: tableView.rx.isHidden)
)