【发布时间】:2020-09-01 23:25:10
【问题描述】:
我正在尝试检测对 WKWebView 中链接的点击,并在另一个 WKWebView 中加载相应的 URL。 我能够获取点击的 URL 并创建 URL 请求,但加载 URLRequest 总是失败并出现相同的错误:
致命错误:在隐式展开时意外发现 nil 可选值。
这很奇怪,因为当我打印 URLRequest 变量的值时,我可以看到它根本不是 nil。
let navigationController = self.navigationController
self.navigationController?.setToolbarHidden(false, animated: false)
let autoLinkUrl = (messageBody!["autoLinkUrl"] as? String)!
print(autoLinkUrl) /* prints: https://news.ycombinator.com/ */
if let requestURL = URL(string: autoLinkUrl) {
print(requestURL) /* prints: https://news.ycombinator.com/ */
let request : URLRequest? = URLRequest(url: requestURL)
print(request) /* prints: Optional(https://news.ycombinator.com/) */
self.websiteRecordingVC!.webView.load(request!) /* Fatal error is raised here */
navigationController!.pushViewController(self.websiteRecordingVC!, animated: true)
}
欢迎任何帮助。 非常感谢。
【问题讨论】:
-
也许
self.websiteRecordingVC是nil? -
摆脱它!在网站RecordingVC!。对于视图,您永远不应该使用它。如果您以编程方式创建视图,请确保您在情节提要上正确连接它或正确实例化它。
-
websiteRecordingVC 变量工作正常。我能够毫无问题地在不同的视图控制器之间切换(除了这个自动链接用例)。删除“!”来自网站RecordingVC!给出了一个新错误,所以我不确定这会解决我的问题。由于它在应用程序的其他部分中正常工作,我认为最好保持原样。感谢您的帮助!
标签: ios swift xcode urlrequest swift-optionals