这不是一个问题,但我在这里张贴,希望能够拯救别人的理智(我只花了一天的时间来解决这个问题).我已经发现了iOS 12.0+中出现的内存泄漏,它影响了WKWebView和UIWebView.只要您实例化2个Web视图中的任何一个,就会出现泄漏.Instruments将漏洞识别为来自JavaScriptCore,我猜这是为什么它同样会影响两个webview.
当我决定尝试更旧的iOS版本(11.4 - 12.0之前的版本)时,我试图弄清楚我做错了什么,我注意到泄漏已经消失了.我每次都可以重现这一点.
要重现,您需要做的就是在类上分配webview的实例.
let webview = WKWebView()
Run Code Online (Sandbox Code Playgroud)
要么
let webview = UIWebView()
Run Code Online (Sandbox Code Playgroud)
马上,您会注意到iOS 12.0/12.1上有4个泄漏,如果您在iOS 11.4上运行代码,这些泄漏将不再存在.有4个单独的泄漏; 3 x 96字节和1 x 128字节.
我通过BugReporter向Apple提交了一个错误,在Openradar上重复:https://openradar.appspot.com/radar ? id = 6132657108811776