美文网首页
iOS 9 WKWebView 设置UIScrollViewDe

iOS 9 WKWebView 设置UIScrollViewDe

作者: _森宇_ | 来源:发表于2019-05-20 15:20 被阅读0次

    问题描述

    系统要求:iOS 9.x 及之前版本
    设备要求:无
    问题详情:使用WKWebView时,设置了scrollView的delegate,但是在关闭页面时没有设回nil,在webView的dealloc时就会崩溃。

    _webView.scrollView.delegate = self;
    

    崩溃日志

    问题关键堆栈信息

    - [UIScrollView setDelegate:] + 40
    - [WKScrollView _updateDelegate] + 228
    - [WKWebView dealloc] + 216
    

    原因分析

    WebKit的bug,因为时iOS 9 及之前版本,初步估计是苹果对于delegate的处理没有达到weak的预期情况,导致在退出当前ViewController的时候更新webView的delegate,还是使用了已经释放的ViewController
    在iOS 10苹果已经把问题修复了。

    解决方案

    在页面关闭时,或者页面dealloc时,把scrollView的delegate设回nil。

    _webView.scrollView.delegate = nil;
    

    相关文章

      网友评论

          本文标题:iOS 9 WKWebView 设置UIScrollViewDe

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