Swift 4和Xcode 9:无法使用类型'(NSCalendar.Unit.Type,from:NSData,to:Date?)的参数列表调用'dateComponents'

时间:2017-11-05 14:56:22

标签: xcode timer nstimer swift4

尝试创建倒数计时器,但我无法通过此错误:

  

无法使用类型'(NSCalendar.Unit.Type,from:NSData,to:Date?)'的参数列表调用'dateComponents'

我的代码:

MainActivity.extraMessage

1 个答案:

答案 0 :(得分:0)

导致错误的主要问题只是一个错字。 StartTime应该是NSDate而不是NSData

如果有一个Swift原生对应方(NS...Calendar等),基本上不要使用Date类。

Swift 3+代码

let formatter = DateFormatter()
let userCalendar = Calendar.current

let calendarComponents : Set<Calendar.Component> = [ .year, .month, .day, .hour]

func printTime()
{
    formatter.dateFormat = "dd/MM/yy hh:mm a"
    let startTime = Date()
    let endTime = formatter.date(from: "10/08/19 12:00 am")!

    let timeDifference = userCalendar.dateComponents(calendarComponents, from: startTime, to: endTime)
}

两个注释:

  • 根据命名指南,变量名称以小写字母
  • 开头
  • 日期格式与日期字符串不匹配,需要解包创建的日期。