WKWebView在iOS8上的闪退异常

作者: 浪漫恋星空 | 来源:发表于2017-08-31 11:01 被阅读99次

    前言

    项目接近尾声,昨天在测试的时候发现了一个闪退的问题。测试的设备为iPhone5s,系统是iOS 8.3,其他的测试设备都不会崩溃。临近下班,就没有多想,感觉就是一个谜之bug,从Bugly反馈的日志看,也只能看到是因为内存释放出栈异常。一早上班就看了一下这个闪退的问题。记录一下两个小时的爬坑记。

    Bug描述

    设备:iPhone5s,系统:iOS 8.3,在进入一个WKWebView加载的本地html标签的页面,退出该页面必定闪退。而且这个问题只会出现在iOS 10以下的系统。

    为爱Debug

    因为知道是内存释放的问题,所以从dealloc方法入手,发现程序正常的走了dealloc方法,然后就崩溃了。因为这是一个很简单的页面,整个页面就三个控件,WKWebView和两个UIButton,两个Button是根据WKWebView的滚动与否决定显不显示。然后发现只要这个页面有WKWebView就会崩溃。通过分析发现,是因为设置了WKWebView.scrollView.delegate,而scrollView在WKWebView是strong强引用的,而在这个页面监听了scrollView的delegate。解决方法就是在dealloc方法中将delegate置空。WKWebView.scrollView.delegate = nil

    相关文章

      网友评论

      本文标题:WKWebView在iOS8上的闪退异常

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