Ich versuche herauszufinden, ob es sicher ist, UI-Objekte im Completion-Handler von WKWebView - evaluateJavaScript:completionHandler:
zu manipulieren. Die Dokumente scheinen nicht zu spezifizieren.In welchem Thread läuft der completionHandler von WKWebViews evaluateJavascript-Methode?
5
A
Antwort
8
Es spielt keine Rolle. Wenn es nicht angegeben ist, sollten Sie davon ausgehen, dass dies nicht der Fall ist.
Sie können ganz einfach Ihre UI-Code auf dem Haupt-Thread ausgeführt werden:
dispatch_async(dispatch_get_main_queue(), ^{
// Your UI code here
});
ist besser als Nachsicht.
4
https://developer.apple.com/reference/webkit/wkwebview/1415017-evaluatejavascript?language=objc
Der Abschluss-Handler läuft immer auf dem Haupt-Thread.
Fast am Ende der Seite. Möglicherweise hinzugefügt, nachdem Sie diese Frage gepostet haben.