导致崩溃的页面有一个WKWebView。我从一个页面进入这个页面再返回,过一会儿,程序崩溃。控制台显示的崩溃信息是:
[WKWebView respondsToSelector:]: message sent to deallocated instance 0x17e986b0
然后我在dealloc方法中将webView的scrollView的delegate置为nil后就不崩溃了:
- (void)dealloc {
self.webView.scrollView.delegate = nil;
}
使用到的scrollView的代理方法是:
self.webView.scrollView.delegate = self;
#pragma mark - UIScrollView Delegate
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
// 让webview的内容一直居中显示
scrollView.contentOffset = CGPointMake((scrollView.contentSize.width - screenWidth) / 2, scrollView.contentOffset.y);
}
问:为什么将delegate置为nil后就不崩溃了?
当页面销毁时delegate没有销毁,delegate的指针变成野指针了,1.把delegate的引用方式改为week 2.在dealloc的时候把delegate变为nil