参数标签 '(xml:, url:, encoding:, option:)' 不匹配任何可用的重载

Posted

技术标签:

【中文标题】参数标签 \'(xml:, url:, encoding:, option:)\' 不匹配任何可用的重载【英文标题】:Argument labels '(xml:, url:, encoding:, option:)' do not match any available overloads参数标签 '(xml:, url:, encoding:, option:)' 不匹配任何可用的重载 【发布时间】:2016-09-25 00:05:15 【问题描述】:

从 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:, encoding:, option:)' 不匹配任何 可用的重载

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

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:, encoding:, option:)' 不匹配任何 可用的重载

非常感谢任何有关如何解决此问题的帮助,谢谢。

【问题讨论】:

是xml还是html? 用您尝试调用的方法(导致错误的方法)更新您的问题。 刚刚做了。谢谢。 【参考方案1】:

参数声明中的_表示该参数没有参数标签,所以在调用方法时不要为参数加上标签。

你的代码应该是:

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:, url:, encoding:, option:)' 不匹配任何可用的重载的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat学习总结(13)—— Tomcat常用参数配置说明

使用 CDATA 解析 xml 响应的参数中的 html 数据

pom.xml中项目标签下的“<url>http://maven.apache.org</url>”标签是啥?

Liferay 友好的 URL 参数丢失

Android SAX XML Parser Access Enclosure 标签 URL 属性

Android - 粗体标签似乎不会影响 Strings.xml 中的 URL 文本 [重复]