【问题标题】:How to fix 'Cannot assign value of type 'NSDate' to type 'Date?'如何修复“无法将“NSDate”类型的值分配给“日期”?
【发布时间】:2019-07-12 12:17:45
【问题描述】:

我是 swift 的初学者,我正在尝试完成我的第一个应用程序。 当我输入代码时,它显示了这个:

无法将“NSDate”类型的值分配给“日期”类型?

newBirthday.birthdate = birthdate as NSDate

我尝试编写语句以使该行代码工作,但它不会。现在我每次运行它,我都会得到 6 个错误。

let newBirthday = Birthday(context: context)
newBirthday.firstName = firstName
newBirthday.lastName = lastName
newBirthday.birthdayGift = birthdayGift
newBirthday.birthdate = birthdate as NSDate
newBirthday.birthdayID = UUID().uuidString

【问题讨论】:

  • 你为什么要使用as NSDate
  • birthdate 是日期对象还是字符串值?
  • 显示您的Birthday 的结构。我认为您已将Date 类型分配给birthdate
  • 我想你会得到一些东西here

标签: ios swift date swift4 nsdate


【解决方案1】:

从 Swift 3 开始,它不再使用 Objective-c 库 NS

所以如果使用 Swift 3.0 或更高版本,则移除 NS Prefix

在您的情况下,生日对象变量“生日”是 Date 类型不是 NSDate

如果您不能在Date 对象中分配NSDate,对于在Date 中分配NSDate,您必须先在Date 中进行转换。

newBirthday.birthdate = birthdate

【讨论】:

  • 如果东西已经是Date,为什么还要使用as! Date?只需说 newBirthday.birthdate = birthdate 就可以了。
  • “无法将 'NSDate' 类型的值分配给类型 'Date?”我的意思是说根据错误进行变量转换
猜你喜欢
  • 2018-03-12
  • 2020-01-10
  • 2020-03-05
  • 1970-01-01
  • 1970-01-01
  • 2021-04-30
  • 2019-12-03
  • 2017-08-07
  • 2021-03-08
相关资源
最近更新 更多