过度释放:[**VIewController scrollViewDidScroll:]: message sent to deallocated instance

修复bug 是开发者经常遇到并乐此不疲的一件事,尤其是看到bug现象就能想到哪了出问题了, 修复之后那种体验不可言喻,但是 最让人头痛的是 ,程序经常崩在EXC_BADACCESS 这种, 今天我就说一下其中一个bug。
先上bug截图:

FDAF5315-FAA1-461E-9A70-311C596B2F9F.png

是不是特别熟悉,但是这种错误,让我们无章可循,不知道究竟是哪里出了问题,
紧接着,依照我的直觉【哈哈,装个X,其实是经验而已了】, 判定可能为僵尸对象,打开xcode的僵尸对象调试


过度释放:[**VIewController scrollViewDidScroll:]: message sent to deallocated instance_第1张图片
18C7D4F3-A6FD-4A3E-9BD5-85BB8CCA062B.png

再次出发崩溃,果不其然,此时的控制台的输出为:

2B6DF954-C151-4E0D-B638-867349364EE8.png

至少我们已经定位到了某个VC里面,而且错误原因很明明了,scrollViewDidScroll:]: message sent to deallocated instance 即 过度释放,那么问题就迎刃而解了,只需要在delloc 方法里面:
-(void)dealloc{
self.TableView.delegate = nil;
[也可能是ScrollView,看自己界面的情况而定]
}
好吧,总算解决了,继续苦逼的修复其他bug吧。

你可能感兴趣的:(过度释放:[**VIewController scrollViewDidScroll:]: message sent to deallocated instance)