Подпись типа для метода, который вы вызываете, public func HTML(html: String, url: String? = nil, encoding: String.Encoding, option: ParseOption = kDefaultHtmlParseOption) throws -> HTMLDocument
. Функция возвращает не необязательное значение, но может выдать ошибку.
Вы можете обработать ошибку, используя ключевое слово try?
, чтобы функция возвращала nil
в случае возникновения ошибки и использования дополнительной привязки, которую вы используете в данный момент, следующим образом:
if let doc = try? Kanna.HTML(html: htmlText, encoding: String.Encoding.utf8) {...
или, вернее, используйте try
и поместите вызов функции в блок do-catch
, чтобы увидеть фактическую ошибку в случае возникновения какой-либо ошибки.
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
}