[英]Retain Cycle in closure in CellView of TableView
我在我的 ViewController 中面临保留周期问题。 我在我的 tableview 单元格中添加了一个闭包来监听点击按钮:
var onBtnActionClickHandler: (() -> ())?
并将其称为:
@objc func btnActionClicked() {
onBtnActionClickHandler?()
}
闭包在 cellForRow 方法中实现为:
cell.onBtnActionClickHandler = { [weak self] in
self?.btnActionClicked()
}
但我在这个过程中面临着保留周期。 根据我的理解,它不应该有很强的引用来保留循环。 任何人都可以解释这个过程中出了什么问题。 谢谢
var onBtnActionClickHandler 由单元格保留,并强烈引用您的 controller?。
您应该将单元格内的 var 声明为 weak:
weak var onBtnActionClickHandler: (() -> ())?
好的。 所以我已经解决了这个问题。 问题不在于这个单元格,实际上是一个经理 class 两次设置了一个监听器并且只释放了一次。 那导致了我的 class 中的 reatain 循环。感谢您对这个问题的所有回答。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.