iOS 12以上的内存泄漏-WKWebView和UIWebView

时间:2018-11-07 10:08:51

标签: memory-leaks uiwebview wkwebview ios12 javascriptcore

这不是问题,但是我在这里发布,希望它可以节省其他人的理智(我花了一天的大部分时间弄清楚了这一点)。我确定从iOS 12.0+开始出现了内存泄漏,这会影响WKWebView和UIWebView。实例化两个Web视图中的任何一个后,就会立即显示泄漏。仪器将泄漏识别为来自JavaScriptCore,我猜这就是为什么它会同等影响两个Web视图。

当我决定尝试使用较旧的iOS版本(11.4-12.0之前的版本)时,我试图找出我做错了什么,而我发现泄漏已经消失了。我每次都可以复制。

要进行复制,您要做的就是在类上分配一个Webview实例。

let webview = WKWebView()

let webview = UIWebView()

立即,您会注意到iOS 12.0 / 12.1上有4个漏洞,如果您在iOS 11.4上运行代码,这些漏洞将不再存在。有4个单独的泄漏; 3 x 96字节和1 x 128字节。

Leak-WKWebView

我已经通过BugReporter向Apple提交了一个错误,该错误在Openradar上重复出现:https://openradar.appspot.com/radar?id=6132657108811776

1 个答案:

答案 0 :(得分:3)

这里有同样的问题。正在测试我的应用程序是否存在任何内存泄漏,一旦打开UIWebView,它就会给我确切的泄漏。

我认为这与baseurl中的javascript有关,但将其设置为nil会产生相同的结果。这是我为webview设置的:

NSURL *url = [NSURL URLWithString:@"https://example.com"];
[self.webView loadHTMLString: htmlContent baseURL: url];

希望苹果很快会给我们解决方案。