我收到错误 无法形成对 TestClass 类的实例 (0x15919e00) 的弱引用。可能是这个对象被过度释放,或者正在被释放。
下面的代码。
如果我删除 addObserver
和 removeObserver
行,我的代码不会崩溃。我不确定为什么会这样。有没有人有任何想法?提前感谢您的帮助!
class TestClass: NSObject {
lazy var tableView: UITableView = {
let tableView = UITableView(frame: .zero, style: .plain)
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 52.0
tableView.delegate = self
tableView.dataSource = self
let nib = UINib(nibName: "CustomCell", bundle: nil)
tableView.register(nib, forCellReuseIdentifier: "customCell")
tableView.addObserver(self, forKeyPath: "myPath", options:nil, context: nil)
return tableView
}()
deinit {
tableView.removeObserver(self, forKeyPath: "myPath")
}
}
惰性变量和弱引用并没有真正融合在一起。我认为问题在于被声明为惰性变量的 tableView。将其更改为只读变量,您应该没问题...
关于ios - 无法形成对类实例的弱引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45068469/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) | Powered by Discuz! X3.4 |