【问题标题】:Extraneous argument label 'localeID' in call (SwiftDate)调用中的无关参数标签“localeID”(SwiftDate)
【发布时间】:2016-08-20 14:01:28
【问题描述】:

我正在使用 Swift 开发一个 iOs 应用程序,并且是一个应用程序开发的新手。我使用SwiftDate 外部库来处理日期。 SwiftDate 与 CocoaPods 一起安装,并在项目中正确导入。

但是我不知道为什么我在编译我的项目时会出现这个错误:

调用中的外部参数标签“localeID”

对于此代码:

let now = NSDate()

let nowHere = now.toString() // E.g. 21-Dec-15 12:00 CET
let nowInFrench = now.inRegion(localeID: "fr_FR").toString()

我明白这是因为参数格式不正确,但这是documentation 的一个例子,所以我对这个问题有点迷茫。

谢谢。

【问题讨论】:

    标签: ios swift date


    【解决方案1】:

    正如奥利弗所说,第一个问题是参数标签

    let nowInFrench = now.inRegion(localeID: "fr_FR").toString()
    

    修复你的

    调用中的外部参数标签“localeID”

    错误写成这样

    let nowInFrench = now.inRegion("fr_FR").toString()
    

    那你就来了

    无法将类型字符串的值转换为期望参数类型区域

    错误。这意味着您不能简单地给函数inRegion 一个字符串对象。它需要一个 Region 对象。 documentation 表示使用创建区域

    let paris = DateRegion(timeZoneID: "CEST", localeID: "fr_FR")
    let nowInFrench = now.inRegion(paris).toString()
    

    【讨论】:

      【解决方案2】:

      错误被标记出来,因为函数中的第一个参数不需要写标签,只需要写后面的。

      如果你只是写:

      let nowInFrench = now.inRegion("fr_FR").toString()
      

      错误应该消失。

      我不知道为什么这个例子是这样写的,也许只是为了清楚。

      编辑:查看文档后,我确实认为他们刚刚包含了标签,以便清楚地了解他们使用什么类型作为参数。

      【讨论】:

      • 我已经尝试过了,这给了我另一个错误:无法将类型字符串的值转换为期望参数类型区域?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-25
      • 2015-01-21
      相关资源
      最近更新 更多