ITiOS开发小技巧程序猿阵线联盟-汇总各类技术干货

使用UIwebView-控制器不调用dealloc

2017-08-16  本文已影响43人  Sunfairy

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:之类的;

上一篇下一篇

猜你喜欢

热点阅读