wkwebview使用addScriptMessageHandl

2018-04-04  本文已影响124人  Gu_Liang

今天偶然发现使用wkwebview的界面没有释放,然后各种排查问题最后定位到addScriptMessageHandler这句代码引起了内存泄漏问题。

[configuration.userContentController addScriptMessageHandler:self name:name]

这里userContentController持有了self ,然后 userContentController 又被configuration持有,最终被wkwebview持有,然后wkwebview是self的一个成员变量,所以self也持有self,所以就造成了循环引用,导致界面不会被释放

解决方案

viewWillAppear里面调用addScriptMessageHandler

viewWillDisappear 调用removeScriptMessageHandlerForName

这样内存就正常释放了

上一篇 下一篇

猜你喜欢

热点阅读