Swift3 参数标签';(xml:,url:,编码:,选项:)和#x27;不匹配任何可用的重载

Swift3 参数标签';(xml:,url:,编码:,选项:)和#x27;不匹配任何可用的重载,swift3,Swift3,从Swift 2.2到Swift 3,现在我陷入了代码的这一部分: public func HTML(_ html: String, url: String?, encoding: String.Encoding, option: ParseOption = kDefaultHtmlParseOption) -> HTMLDocument? { switch option { case .htmlParseUseLibxml(let opt): return

从Swift 2.2到Swift 3,现在我陷入了代码的这一部分:

public func HTML(_ html: String, url: String?, encoding: String.Encoding, option: ParseOption = kDefaultHtmlParseOption) -> HTMLDocument? {
    switch option {
    case .htmlParseUseLibxml(let opt):
        return libxmlHTMLDocument(html: html, url: url, encoding: encoding, option: opt.rawValue)
    default:
        return nil
    }
}
public func HTML(_ html: String, encoding: String.Encoding, option: ParseOption = kDefaultHtmlParseOption) -> HTMLDocument? {
    return HTML(html: html, url: nil, encoding: encoding, option: option)
}
我有很多例子,其中第2行出现错误,说明:

参数标签(html:,url:,编码:,选项:)与任何 可用重载

这是类似问题的另一个例子:

public func XML(_ xml: String, url: String?, encoding: String.Encoding, option: ParseOption = kDefaultXmlParseOption) -> XMLDocument? {
    switch option {
    case .xmlParseUseLibxml(let opt):
        return libxmlXMLDocument(xml: xml, url: url, encoding: encoding, option: opt.rawValue)
    default:
        return nil
    }
}
public func XML(_ url: URL, encoding: String.Encoding, option: ParseOption = kDefaultXmlParseOption) -> XMLDocument? {
    if let data = try? Data(contentsOf: url) {
        return XML(xml: data, url: url.absoluteString, encoding: encoding, option: option)
    }
    return nil
}
错误:

参数标签(xml:,url:,编码:,选项:)与任何 可用重载


非常感谢您对如何解决此问题的任何帮助。

参数声明中的
\
意味着参数没有参数标签,因此在调用方法时不需要为参数添加标签

您的代码应该是:

public func HTML(_ html: String, url: String?, encoding: String.Encoding, option: ParseOption = kDefaultHtmlParseOption) -> HTMLDocument? {
    switch option {
    case .htmlParseUseLibxml(let opt):
        return libxmlHTMLDocument(html: html, url: url, encoding: encoding, option: opt.rawValue)
    default:
        return nil
    }
}
public func HTML(_ html: String, encoding: String.Encoding, option: ParseOption = kDefaultHtmlParseOption) -> HTMLDocument? {
    // Change the line below:
    return HTML(html, url: nil, encoding: encoding, option: option)
}

XML版本基本相同。

参数声明中的
\u
意味着参数没有参数标签,因此在调用方法时不为参数添加标签

您的代码应该是:

public func HTML(_ html: String, url: String?, encoding: String.Encoding, option: ParseOption = kDefaultHtmlParseOption) -> HTMLDocument? {
    switch option {
    case .htmlParseUseLibxml(let opt):
        return libxmlHTMLDocument(html: html, url: url, encoding: encoding, option: opt.rawValue)
    default:
        return nil
    }
}
public func HTML(_ html: String, encoding: String.Encoding, option: ParseOption = kDefaultHtmlParseOption) -> HTMLDocument? {
    // Change the line below:
    return HTML(html, url: nil, encoding: encoding, option: option)
}

XML版本基本相同。

是XML还是html?用您试图调用的方法(导致错误的方法)更新您的问题。就这么做了。谢谢。是xml还是html?用您试图调用的方法(导致错误的方法)更新您的问题。就这么做了。非常感谢。