【发布时间】:2017-06-07 10:06:47
【问题描述】:
我有一个 viewController,我在其中创建了一个 WKWebView,这里是委托方法之一:
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
let model = SwiftJSModel()
self.jsContext = webView.value(forKeyPath: "documentView.webView.mainFrame.javaScriptContext") as! JSContext
model.jsContext = self.jsContext
self.jsContext.setObject(model, forKeyedSubscript: "modelObject" as NSCopying & NSObjectProtocol)
}
但是,我的应用程序在加载此 webView 后会崩溃,控制台显示:
reason: '[<WKWebView 0x7fc41d9c7200> valueForUndefinedKey:]: this class is not key value coding-compliant for the key documentView.'
webView.value(forKeyPath: "documentView.webView.mainFrame.javaScriptContext") 好像在 swift3 中不起作用,有人知道为什么吗?
【问题讨论】:
-
不一样的原因,我完全用代码创建了这个viewController。
-
如果你注释了这个代码块,你的代码运行良好吗?
-
是的,效果很好。如果我一步一步调试,遇到
webView.value(forKeyPath: "documentView.webView.mainFrame.javaScriptContext") as! JSContext这一行会崩溃。