这两天被UIWebView 跳转页面闪退的问题搞的欲仙欲死,找了大半天,一直搞到晚上12点多,终于解决了。
原因:
如果你给webView 设置了委托(delegate), 即:
webView.delegate = self;
那么一定要记得做这样的处理:
-(void)dealloc
{
webView.delegate = nil;
[super dealloc];
即在不用时,必须把webView.delegate设为nil。
因为webView是异步请求数据的,当webView的请求结果回来时,如果webView所在的viewController已经不存在,但webView.delegate没有设为nil,那么webView.delegate极有可能成为野指针,经常会报 “ message sent to deallocated instance ”的错误而Crash。
当然,这是非arc的处理方式,如果是arc的,等我验证后再更新。