UITableview 释放因 KVO 错误而崩溃
UITableview deallocation crashes with KVO error
我将 UITableview 用于聊天收件箱视图,我的导航堆栈类似于
(
"<VTDiscoverHome3ViewController: 0x7ff094758f00>",
"<VTInboxViewController: 0x7ff098de34d0>",
"<VTChatViewController: 0x7ff095827e00>",
"<VTDiscoverProfessionalDetailsViewController: 0x7ff095424a00>",
"<VTRequestScheduleViewController: 0x7ff095814c00>"
)
因此,当从顶部视图弹出到主视图时,我在收件箱视图中遇到了崩溃,说
An instance 0x7ff094a33800 of class UITableView was deallocated while key value observers were still registered with it. Current observation info: <NSKeyValueObservationInfo 0x608002e3f680> (
<NSKeyValueObservance 0x60800585c1d0: Observer: 0x7ff098f1b8d0, Key path: contentOffset, Options: <New: YES, Old: NO, Prior: NO> Context: 0x0, Property: 0x60800585c140>
<NSKeyValueObservance 0x60800585c320: Observer: 0x7ff098f1b8d0, Key path: contentSize, Options: <New: YES, Old: NO, Prior: NO> Context: 0x0, Property: 0x60800585c290>
<NSKeyValueObservance 0x60800585c410: Observer: 0x7ff098f1b8d0, Key path: frame, Options: <New: YES, Old: NO, Prior: NO> Context: 0x0, Property: 0x60800585c380>
<NSKeyValueObservance 0x60800585c500: Observer: 0x7ff098f1b8d0, Key path: contentInset, Options: <New: YES, Old: NO, Prior: NO> Context: 0x0, Property: 0x60800585c470>
)'
我尝试移除 tableview
观察者并设置
self.tableView.delegate = nil;
self.tableView.dataSource = nil;
self.tableView = nil;
但还是没有运气
我不明白为什么会发生此崩溃。
任何帮助将不胜感激。
谢谢。
得到解决方案。
我正在使用拉动刷新 class,它向 tableview
的 scrollview
添加了一些观察者
因此,在重新分配时有时会崩溃。
因此,在删除 observers
时添加了 try
和 catch
块。
我将 UITableview 用于聊天收件箱视图,我的导航堆栈类似于
(
"<VTDiscoverHome3ViewController: 0x7ff094758f00>",
"<VTInboxViewController: 0x7ff098de34d0>",
"<VTChatViewController: 0x7ff095827e00>",
"<VTDiscoverProfessionalDetailsViewController: 0x7ff095424a00>",
"<VTRequestScheduleViewController: 0x7ff095814c00>"
)
因此,当从顶部视图弹出到主视图时,我在收件箱视图中遇到了崩溃,说
An instance 0x7ff094a33800 of class UITableView was deallocated while key value observers were still registered with it. Current observation info: <NSKeyValueObservationInfo 0x608002e3f680> (
<NSKeyValueObservance 0x60800585c1d0: Observer: 0x7ff098f1b8d0, Key path: contentOffset, Options: <New: YES, Old: NO, Prior: NO> Context: 0x0, Property: 0x60800585c140>
<NSKeyValueObservance 0x60800585c320: Observer: 0x7ff098f1b8d0, Key path: contentSize, Options: <New: YES, Old: NO, Prior: NO> Context: 0x0, Property: 0x60800585c290>
<NSKeyValueObservance 0x60800585c410: Observer: 0x7ff098f1b8d0, Key path: frame, Options: <New: YES, Old: NO, Prior: NO> Context: 0x0, Property: 0x60800585c380>
<NSKeyValueObservance 0x60800585c500: Observer: 0x7ff098f1b8d0, Key path: contentInset, Options: <New: YES, Old: NO, Prior: NO> Context: 0x0, Property: 0x60800585c470>
)'
我尝试移除 tableview
观察者并设置
self.tableView.delegate = nil;
self.tableView.dataSource = nil;
self.tableView = nil;
但还是没有运气
我不明白为什么会发生此崩溃。
任何帮助将不胜感激。
谢谢。
得到解决方案。
我正在使用拉动刷新 class,它向 tableview
的 scrollview
因此,在重新分配时有时会崩溃。
因此,在删除 observers
时添加了 try
和 catch
块。