展开的 URLRequest 始终为零
Unwrapped URLRequest is always nil
我正在尝试检测对 WKWebView 中链接的点击,并在另一个 WKWebView 中加载相应的 URLs。
我能够获得点击的 URL 并创建 URL 请求,但加载 URL 请求总是失败并出现相同的错误:
Fatal error: Unexpectedly found nil while implicitly unwrapping an
Optional value.
这很奇怪,因为当我打印 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)
}
欢迎任何帮助。
非常感谢。
在您的代码中,您 force-unwrapping (!
) 每隔 optional
不必要 不推荐。 Over-using force-unwrapping 不是一个好的编码习惯。这可能会导致您的应用程序意外崩溃。
您必须使用可选绑定 (if-let
) 和可选链接 来优雅地处理optionals
。
if let requestURL = URL(string: autoLinkUrl) {
let request = URLRequest(url: requestURL)
if let vc = self.websiteRecordingVC {
vc.webView.load(request)
navigationController?.pushViewController(vc, animated: true)
}
}
此外,在您的 websiteRecordingVC
中检查是否所有 IBOutlets
都已正确连接。
我正在尝试检测对 WKWebView 中链接的点击,并在另一个 WKWebView 中加载相应的 URLs。 我能够获得点击的 URL 并创建 URL 请求,但加载 URL 请求总是失败并出现相同的错误:
Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value.
这很奇怪,因为当我打印 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)
}
欢迎任何帮助。 非常感谢。
在您的代码中,您 force-unwrapping (!
) 每隔 optional
不必要 不推荐。 Over-using force-unwrapping 不是一个好的编码习惯。这可能会导致您的应用程序意外崩溃。
您必须使用可选绑定 (if-let
) 和可选链接 来优雅地处理optionals
。
if let requestURL = URL(string: autoLinkUrl) {
let request = URLRequest(url: requestURL)
if let vc = self.websiteRecordingVC {
vc.webView.load(request)
navigationController?.pushViewController(vc, animated: true)
}
}
此外,在您的 websiteRecordingVC
中检查是否所有 IBOutlets
都已正确连接。