gpt4 book ai didi

swift - 从 Kanna 2.2.1 升级到 4.0.2 并得到同样的错误

转载 作者:行者123 更新时间:2023-11-28 05:50:38 24 4
gpt4 key购买 nike

我正在重写我在 Github 上找到的一个项目,以学习和自学如何使用 swift 和 pod 文件。我将 Kanna 从 2.2.1 升级到 4.0.2,因为我遇到了 arm64 错误。

使用 4.0.2 我收到错误:

Initializer for conditional binding must have Optional type, not 'HTMLDocument'

Call can throw, but it is not marked with 'try' and the error is not handled

我不确定此错误的含义以及如何修复它。它与此 if 语句相关联:

if let doc = Kanna.HTML(html: htmlText, encoding: String.Encoding.utf8) {
for itemSize in doc.css("option[value^='']") {
let itemSizeText = itemSize.text!.lowercased()

let wishListItemSize = self.websiteInstance!.websiteWishListItem.size!.lowercased()

if itemSizeText.range(of: wishListItemSize) != nil {
print("Found size")

foundItemSize = true

let itemSizeValue = itemSize["value"]

self.websiteInstance!.viewController!.websiteBrowser!.evaluateJavaScript("document.getElementById(\"size-options\").value = \(itemSizeValue!)", completionHandler: nil)

break
}

countSize += 1
}
}

最佳答案

您正在调用的方法的类型签名是 public func HTML(html: String, url: String? = nil, encoding: String.Encoding, option: ParseOption = kDefaultHtmlParseOption) throws -> HTMLDocument。该函数返回一个非可选值,但可能会引发错误。

您可以通过使用 try? 关键字使函数返回 nil 来处理错误,以防抛出错误并使您当前使用的可选绑定(bind)起作用像这样:

if let doc = try? Kanna.HTML(html: htmlText, encoding: String.Encoding.utf8) {...

或者更确切地说,使用 try 并将函数调用放在 do-catch block 中,以在抛出任何错误时查看实际错误。

do {
let doc = Kanna.HTML(html: htmlText, encoding: String.Encoding.utf8)
for itemSize in doc.css("option[value^='']") {
let itemSizeText = itemSize.text!.lowercased()

let wishListItemSize = self.websiteInstance!.websiteWishListItem.size!.lowercased()

if itemSizeText.range(of: wishListItemSize) != nil {
print("Found size")
foundItemSize = true
let itemSizeValue = itemSize["value"]
self.websiteInstance!.viewController!.websiteBrowser!.evaluateJavaScript("document.getElementById(\"size-options\").value = \(itemSizeValue!)", completionHandler: nil)
break
}

countSize += 1
}
} catch {
print(error)
// Handle error
}

关于swift - 从 Kanna 2.2.1 升级到 4.0.2 并得到同样的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53104347/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com