场景

因为业务需要,H5没有处理页面缩放。
所以,要APP端处理H5页面的缩放。

于是,使用了下面的方式:

WKWebView *webView = [[WKWebView alloc] init];
webView.scrollView.delegate = self;
......

#pragma mark - UIScrollViewDelegate

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
return nil; // 返回 nil, 不让页面缩放

于是,当前控制器 ​​pop​​​ 之后
就光荣的 ​​​Crash​​ 了 !

看了下当前线程的方法调用,发现
​​​WKWebView​​​ 在 ​​dealloc​​​ 之后
更新了 ​​​scrollView​​​ 的代理
最后 ​​​__forwarding​​ 时崩溃了

看图说话:

一次阻止WKWebView缩放导致的崩溃!_缩放

办法

在​​dealloc​​ 方法中置空代理,搞定!

- (void)dealloc{
_webView.scrollView.delegate