使用UIwebView-控制器不调用dealloc

作者: Sunfairy | 来源:发表于2017-08-16 15:29 被阅读43次

1:webView的代理最好设置为weakSelf

项目中用到了与H5页面交互的东西;我使用了UIWebView,发现WebView真的有很多的坑,例如这一个;当我们生成一个WebView的时候,

给webView设置代理为self

这时候,当我们使用完成这个页面,用户弹出本界面的时候.(�popViewontroller的时候);

重写dealloc方法(注意ARC情况下观察者什么的都要在dealloc这个方法里面移除),打上断点你会发现dealloc这个方法并没有走,这是为什么呢?因为在你生成webView的时候,给webView设置了一个代理,所以,造成了一个相互引用,控制器在你pop出去的时候并没有销毁.

如图所示给webView设置代理的时候把代理设置为弱引用,

使用__weak 生成一个弱指针指向self

这个时候在使用popviewcontroller的时候,就会调用dealloc方法;

(2)检查本视图控制器中所有block中,是否使用了非weak指针;

(3)是否使用了延时调用  perFormSeletor: afterdealy:之类的;

相关文章

网友评论

    本文标题:使用UIwebView-控制器不调用dealloc

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