【问题标题】:Cannot assign a value of type 'DateComponents' to a value of type 'String?'无法将“DateComponents”类型的值分配给“String”类型的值?
【发布时间】:2016-11-02 04:16:37
【问题描述】:

以下代码无法编译,我不确定在 Apple 文档中的何处可以找到答案:

let birthdate = try currentHealthStore.dateOfBirthComponents()
        var formatter = DateFormatter()
        formatter.dateFormat = "dd-MM"
        var formattedDate = formatter.string(for: birthdate)
        self.ageValueLabel.text = birthdate

错误源于无法将其转换为字符串的最后一行。

【问题讨论】:

  • birthdate 中的值是什么,还要告诉类型
  • 它应该是来自 HKHealthStore 框架的生日组件。 currentHealthStore 只是一个派生自 HKHealthStore 类的对象。 @RajanMaheshwari
  • 你需要这样写 self.ageValueLabel.text = formatter.stringFromDate(date)
  • 只打印birthday 组件。 dateFormat 可能有问题
  • 你的意思很可能是self.ageValueLabel.text = formattedDate

标签: ios swift nsdateformatter nscalendar


【解决方案1】:

您正在尝试将 dateComponent 值分配给标签。但是标签需要一个字符串值。所以你只需要这样做。

self.ageValueLabel.text = formattedDate

【讨论】:

  • birthdate 的类型为 DateComponents。代码String(birthdate) 甚至无法编译。为什么这个答案被投票并接受了?
猜你喜欢
  • 2015-10-24
  • 1970-01-01
  • 2017-07-02
  • 2015-11-08
  • 1970-01-01
  • 2021-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多