为什么在我使用开发构建时调用 webView.load 时我的 Xcode Swift 应用程序崩溃?
Why does my Xcode Swift app crash when I make a call to webView.load when I use a Development build?
我有一个带有简单视图控制器的应用程序,它只使用 WKWebView(导入 WebKit)加载网页。这是我使用的代码:
@IBOutlet weak var webView: WKWebView!
if let url = URL(string: webPageString) {
webView.load(URLRequest(url: url))
}
当我在模拟器上调试时,这个实现效果很好。但是,如果我执行 'Development' 构建并推送给用户,那么它会在切换到此视图控制器后立即崩溃。
在寻找解决方案时,我发现这可能是数据检测器的问题。所以我取消选中所有这些,但这并没有改变结果。
还有其他建议吗?
崩溃后控制台中的消息是什么?
你在什么方法里面调用 webView.load(URLRequest(url: url))
?
看起来你崩溃了,因为 webView == nil
。您应该只调用 webView.load(URLRequest(url: url))
after/inside viewDidLoad()
方法已在该 UIViewController 中调用。这是因为所有 IBOutlet
视图不是在实例化 UIViewController
后立即连接,而是在 viewDidLoad()
调用后立即连接。
我终于能够在连接到调试器时重复这个问题。我收到以下错误消息:
Could not instantiate class named WKWebView because no class named
WKWebView was found; the class needs to be defined in source code or
linked in from a library (ensure the class is part of the correct
target)’
要解决该错误,您需要做的就是将 WebKit 框架添加到您的 Xcode 项目中。这可以通过以下步骤完成:
- 在项目导航器中,select 您的项目。
- 接下来,select 目标并选择构建阶段选项卡。
- 在 Link 带库的二进制文件部分下,单击 + 按钮。
- 输入'webkit'然后添加WebKit框架
我有一个带有简单视图控制器的应用程序,它只使用 WKWebView(导入 WebKit)加载网页。这是我使用的代码:
@IBOutlet weak var webView: WKWebView!
if let url = URL(string: webPageString) {
webView.load(URLRequest(url: url))
}
当我在模拟器上调试时,这个实现效果很好。但是,如果我执行 'Development' 构建并推送给用户,那么它会在切换到此视图控制器后立即崩溃。
在寻找解决方案时,我发现这可能是数据检测器的问题。所以我取消选中所有这些,但这并没有改变结果。
还有其他建议吗?
崩溃后控制台中的消息是什么?
你在什么方法里面调用 webView.load(URLRequest(url: url))
?
看起来你崩溃了,因为 webView == nil
。您应该只调用 webView.load(URLRequest(url: url))
after/inside viewDidLoad()
方法已在该 UIViewController 中调用。这是因为所有 IBOutlet
视图不是在实例化 UIViewController
后立即连接,而是在 viewDidLoad()
调用后立即连接。
我终于能够在连接到调试器时重复这个问题。我收到以下错误消息:
Could not instantiate class named WKWebView because no class named WKWebView was found; the class needs to be defined in source code or linked in from a library (ensure the class is part of the correct target)’
要解决该错误,您需要做的就是将 WebKit 框架添加到您的 Xcode 项目中。这可以通过以下步骤完成:
- 在项目导航器中,select 您的项目。
- 接下来,select 目标并选择构建阶段选项卡。
- 在 Link 带库的二进制文件部分下,单击 + 按钮。
- 输入'webkit'然后添加WebKit框架