重写UIScrollView的分类`-(void)dealloc`错误

原文地址: https://yuxiang.ren/2016/12/06/UIScrollView-Category-error-message-with-deallocated-instance/

[UIScrollView _systemGestureStateChanged:]: message sent to deallocated instance> 错误解决方法
[UITableViewWrapperView _systemGestureStateChanged] 解决亦是如此

今天一个朋友自己的程序出现了一个bug, 不知道怎么解决, 他把报错内容给我, 报错内容如下:

重写UIScrollView的分类`-(void)dealloc`错误_第1张图片

就是普通的僵尸对象错误, 可是解决就不是那么简单了...

我翻边了各大国内过外网站, 终于再一个不显眼的地方看到了大致是因为在UIScrollView分类重写了dealloc方法导致.

于是我去项目里看一下UIScrollView的分类. 果真, 这个第三方重写了dealoc, 把它注释掉果然没有出现僵尸对象了.

可是问题又来了,这个分类是在dealloc里移除监听的

重写UIScrollView的分类`-(void)dealloc`错误_第2张图片

我想到了MJRefresh使用的也是同样的原理, 于是我去看了他的代码,他是再这里移除监听的

重写UIScrollView的分类`-(void)dealloc`错误_第3张图片

那我们就学着他


重写UIScrollView的分类`-(void)dealloc`错误_第4张图片

重新运行程序, 问题解决.

然而, 又有新的问题出现, 就是通知移除的问题, 为了彻底解决自己写了个.
代码地址:https://github.com/shlyren/ZYScaleHeader

你可能感兴趣的:(重写UIScrollView的分类`-(void)dealloc`错误)