美文网首页iOS
UIScrollView+HeaderScaleImage.h

UIScrollView+HeaderScaleImage.h

作者: Kevin追梦先生 | 来源:发表于2017-02-27 11:27 被阅读303次

    在APP中使用了UIScrollView+HeaderScaleImage.h,发现在iOS 8 系统上app中任何的uitableview被释放之后,再点击屏幕就会crash,报[UITableView _systemGestureStateChanged:]: message sent to deallocated instance 0x17385200,ios 9 ios 10完全没有问题

    2.后来发现任何的collectionview被释放之后,点击屏幕也会crash,报

    [UICollectionView _systemGestureStateChanged:]: message sent to deallocated instance 0x17385200

    3.把目光放在UIScrollView上,查找UIScrollView的分类,是否有问题

    4.找到 UIScrollView+HeaderScaleImage.h 注释了其中一部分代码,并把所有的引用都注释掉,依然有这个问题。

    5.开始将目光放在_systemGestureStateChanged上,还有僵尸对象上,用instrument调试,依然无解。

    6.六个小时过去了。

    7.睡了一觉,然后又把目光放在UIScrollView上,将UIScrollView+HeaderScaleImage.h 中的代码全部注释掉了。

    8.正常。感觉世界都亮了。

    9.一步一步注释,排除,最后发现这个里面重写了uiscrollview的dealloc方法,导致scrollview在释放的时候无法清除自己的观察者身份,导致系统发通知的时候仍然能发到它身上。ios 9 没问题,ios8上就会直接crash。

    10.将最后那个dealloc中的代码另外立出来,在controller的dealloc中主动调用这个方法,整个app没几个页面用这个,所以也并没有增加太多的工作量。

    相关文章

      网友评论

      本文标题:UIScrollView+HeaderScaleImage.h

      本文链接:https://www.haomeiwen.com/subject/lbkzwttx.html