WkWebView 实例化中的内存泄漏
Posted
技术标签:
【中文标题】WkWebView 实例化中的内存泄漏【英文标题】:Memory leak in WkWebView instantiation 【发布时间】:2016-09-06 13:12:29 【问题描述】:我有一个包含 wkwebview 的 Viewcontroller,当我从导航控制器弹出它时出现内存泄漏
堆栈跟踪导致 WkWebview 实例化
我也没有使用任何委托。
我真的很想知道是什么原因造成的以及如何解决这个问题
【问题讨论】:
我在操场上试过。 WKWebView 泄漏的简单实例化。这是一种很奇怪的行为。这仍然会发生 【参考方案1】:很久没有观察到了(至少我不记得上次遇到它是什么时候了)。刚刚在 Xcode 11.2 / ios 13.2 中测试。没有泄漏 - 无论是在简单的测试项目中还是在 Playground 中。
因此,我认为应该分析实际使用情况,这会引入泄漏。
【讨论】:
我已经弄清楚了:由于某种原因,deinit 发生了,但不是立即发生。如果在您的 Playground 中将webView
分配给一个弱变量,您可以看到这一点,然后在 webView = nil
之后打印该弱变量。
@GiuseppeLanza,deinit 发生,但不是立即发生 - 不是泄漏...@987654324@ 还活着,谁知道 WebKit 内部发生了什么...反正对象已销毁。而且,顺便说一句,游乐场只是一个游乐场。
同意这不是泄漏。我在单元测试中观察到了这种行为,并在操场上重新创建了它。在您回答之前没有意识到 webView 是稍后发布的。我用一个简单的类写了同样的东西,自然神论立即发生了。这就是为什么我觉得很奇怪。感谢您的帮助以上是关于WkWebView 实例化中的内存泄漏的主要内容,如果未能解决你的问题,请参考以下文章
ObjectMapper SerializerCache 的单个实例中的对象过多导致内存泄漏