WkWebView实例化中的内存泄漏

7
我有一个包含wkwebview的Viewcontroller,当我从导航控制器中弹出时,会出现内存泄漏。

enter image description here

堆栈跟踪指导WkWebview实例化。

enter image description here

我也没有使用任何委托。

我真的很想知道是什么原因导致这个问题,以及如何解决它。


1
我在 playground 中尝试了一下。简单实例化 WKWebView 就会出现内存泄漏。这是一个非常奇怪的行为。这个问题仍然存在。 - Giuseppe Lanza
1个回答

3

我很久没有见过这个问题了(至少我不记得上次遇到是什么时候)。我刚在Xcode 11.2 / iOS 13.2中进行了测试,没有泄漏 - 在简单的测试项目或Playground中都没有。因此,我认为应该分析实际使用情况,这可能会引入泄漏。

enter image description here


我已经搞清楚了:deinit发生了,但出于某些原因并不是立即发生的。如果你将你的webView分配给一个弱引用变量,并在webView = nil之后打印这个弱引用变量,你就可以看到这一点。 - Giuseppe Lanza
1
@GiuseppeLanza,“deinit发生了,但不是立即发生” - 这不是泄漏... autoreleasepool 仍然存在,而且谁知道WebKit内部会发生什么...无论如何,对象已经被销毁。顺便说一句,Playground只是一个游乐场。 - Asperi
同意这不是泄漏。我在单元测试中观察到了这种行为,并在 playground 中重新创建了它。在看到你的回答之前没有意识到 webView 是后释放的。我用一个简单的类写了同样的东西,析构函数会立即发生。这就是我觉得奇怪的原因。谢谢你的帮助。 - Giuseppe Lanza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接