Утечка памяти в iOS 12+ - WKWebView и UIWebView - PullRequest
0 голосов
/ 07 ноября 2018

Это не вопрос, но я публикую здесь в надежде, что это спасет чужое здравомыслие (я только что провел лучшую часть дня, выясняя это). Я обнаружил утечку памяти, возникшую в iOS 12.0+, которая влияет на WKWebView и UIWebView. Утечка появляется, как только вы создаете экземпляр любого из двух веб-просмотров. Instruments идентифицирует утечку как происходящую из JavaScriptCore, и я думаю, поэтому она одинаково влияет на оба веб-просмотра.

Я пытался выяснить, что я делаю неправильно, когда я решил попробовать более старую версию iOS (11.4 - версия до 12.0), и я заметил, что утечка исчезла. Я могу воспроизвести это каждый раз.

Чтобы воспроизвести, все, что вам нужно сделать, это выделить экземпляр веб-просмотра для класса.

let webview = WKWebView()

или

let webview = UIWebView()

Сразу же вы заметите 4 утечки в iOS 12.0 / 12.1, которых больше не будет, если вы запустите код на iOS 11.4. Есть 4 отдельных утечки; 3 х 96 байт и 1 х 128 байт.

Leak-WKWebView

Я подал ошибку в Apple через BugReporter, дублирован на Openradar: https://openradar.appspot.com/radar?id=6132657108811776

1 Ответ

0 голосов
/ 19 ноября 2018

Та же проблема здесь. Тестировал мое приложение на предмет утечек памяти, и как только я открою UIWebView, оно точно даст мне утечки.

Я думал, что это связано с javascript от baseurl, но установка его на ноль дает тот же результат. Это мои настройки для веб-просмотра:

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

Надеюсь, что Apple даст нам решение в ближайшее время.

...