WKWebView在iOS8上的闪退异常

前言

项目接近尾声,昨天在测试的时候发现了一个闪退的问题。测试的设备为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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 少数派是国内最大的一个分析高品质数字消费指南的平台,致力于更好地运用数字产品或科学方法,帮助用户提升工作效率和生活...
    susnm阅读 5,974评论 6 30
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,262评论 4 61
  • 睡觉是我们一天中最重要的事情,睡眠不足就会影响到第二天的状态,现在男性的压力越来越大,那么睡眠不好怎么办呢? 在我...
    叶姐分享阅读 1,169评论 0 0
  • 秋天,是一个很容易让人沉思和感伤的季节。清凉的雨丝在眼前依依地缠绵,鲜艳的花瓣在半明半暗中纷纷凋落,金黄的落叶在风...
    伊清欢阅读 670评论 6 8
  • 请老师指正
    涵and萱88阅读 333评论 0 0