これは質問ではありませんが、他の誰かの正気を救うことを期待してここに投稿します(これを理解するために1日の大部分を費やしました)。 iOS 12.0以降で発生したメモリリークを特定しました。これはWKWebViewとUIWebViewに影響します。リークは、2つのWebビューのいずれかをインスタンス化するとすぐに表示されます。 Instrumentsは、リークをJavaScriptCoreからのものとして識別します。これが、両方のWebビューに等しく影響する理由だと思います。
以前のiOSバージョン(11.4-12.0より前のバージョン)を試すことにしたとき、私は何が間違っているのかを理解しようとしていましたが、リークがなくなっていることに気付きました。毎回再現できます。
再現するには、クラスにWebビューのインスタンスを割り当てるだけです。
let webview = WKWebView()
または
let webview = UIWebView()
すぐに、iOS 12.0/12.1で4つのリークに気付くでしょう。iOS11.4でコードを実行すると、これらのリークはなくなります。 4つの別個のリークがあります。 3 x 96バイトと1 x 128バイト。
Apple BugReporterを介してOpenradarで複製されたバグを提出しました: https://openradar.appspot.com/radar?id=6132657108811776
ここでも同じ問題。アプリでメモリリークをテストしていて、UIWebViewを開くとすぐに、正確なリークが発生します。
BaseurlからのJavaScriptに関係があると思いましたが、nilに設定すると同じ結果が得られます。これは私のwebviewの設定です:
NSURL *url = [NSURL URLWithString:@"https://example.com"];
[self.webView loadHTMLString: htmlContent baseURL: url];
希望Appleはすぐに解決策を与えてくれます。