Потому что result
может быть чем угодно: строкой, числом, массивом, объектом JSON ... в зависимости от того, что возвращает ваш Javascript.У Swift нет возможности узнать это во время компиляции, поэтому он помечает result
как Any
.
. Вы должны выполнить приведение во время выполнения:
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
self.webView.evaluateJavaScript("document.getElementById('user_id').innerText") { (result, error) in
guard let result = result as? String else { return }
let items = result.components(separatedBy: "|")
self.ref?.child("people").child(result).setValue(["device_token": self.deviceTokenStringfinal])
}
}