【问题标题】:Trouble using loadHTMLString in Swift在 Swift 中使用 loadHTMLString 时遇到问题
【发布时间】:2017-09-18 19:37:57
【问题描述】:

我正在尝试制作一个可以从网站上抓取数据然后加载的应用。我已经设法刮掉它:

let task = URLSession.shared.dataTask(with: myURL) {(data, response, error) in

使用以下代码对其进行解编码:

let newStr = String(data: data!, encoding: .utf8)

我正在尝试加载它:

webView.loadHTMLString(newStr, baseURL:"")

但是如果我把它留空,它只会崩溃并给出这个错误:

致命错误:在展开可选值时意外发现 nil

我不确定将 baseURL 设置为什么,因为我正在应用程序中创建字符串。

我应该将 baseURL 设置为什么?

【问题讨论】:

  • 您确定错误不是来自 data! 展开表达式吗?
  • 我在有和没有 !如果这就是你的意思。但不,我不是 100% 确定。
  • 但是我已经尝试了这两个答案,但它们都没有奏效,所以也许我弄错了这个问题。
  • 我同意保罗的观点。您似乎有两个问题,我们解决了其中一个。我们需要知道投诉的是哪个选项。你能使用“if let”语法来确保你永远不会有一个可选的吗?
  • 是的,我刚刚对我的答案进行了编辑,并在我的答案中提供了明确的说明。如果您遇到困难,请告诉我,我会给出更明确的指示。

标签: swift webview base-url


【解决方案1】:

不要使用空字符串"",而是使用nil 作为baseURL

编辑:

现在您已经确定您的 webView 为 nil,剩下的应该很容易了!转到初始化 webView 的代码,根据需要添加错误消息以查看它为什么不成功。 (一个 nil webView 意味着它要么初始化失败,要么你从未初始化它......)

【讨论】:

  • 您应该仔细阅读代码并确保您的选项实际上是使用标准语法“if let webView = ... { }”填充的。在我们提供进一步帮助之前,我们需要知道什么是 nil。
  • 谢谢,保罗,我很感激。您的个人资料令人印象深刻!
猜你喜欢
  • 2018-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-23
  • 1970-01-01
  • 2018-12-25
  • 1970-01-01
相关资源
最近更新 更多