【发布时间】:2015-11-22 20:45:40
【问题描述】:
有人知道我该如何解决这个问题吗?我收到此错误:
¨无法将“NSDate”类型的值转换为预期的参数类型“NSDateComponents”¨在线:
错误发生在以下行:
let competitionDay = userCalendar.dateFromComponents(competitionDate)!
这是更完整的代码摘录:
func Date() {
// Here we set the current date
let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components([.Hour, .Minute, .Second, .Nanosecond], fromDate: date)
let hour = components.hour
let minutes = components.minute
let month = components.month
let year = components.year
let day = components.day
let currentDate = calendar.dateFromComponents(components)
// here we set the due date. When the timer is supposed to finish
// final Calendar value
let userCalendar = NSCalendar.currentCalendar()
let competitionDate:NSDate = myDatePicker.date
competitionDate.timeIntervalSinceNow
let competitionDay = userCalendar.dateFromComponents(competitionDate)!
// Here we compare the two dates
competitionDay.timeIntervalSinceDate(currentDate!)
let dayCalendarUnit = calendar.components([NSCalendarUnit.Day, NSCalendarUnit.Hour, NSCalendarUnit.Minute], fromDate: date)
//here we change the seconds to hours,minutes and days
let competitionDayDifference = calendar.components([.Day, .Hour, .Minute],
fromDate: currentDate!, toDate: competitionDay, options: NSCalendarOptions())
//finally, here we set the variable to our remaining time
let daysLeft = competitionDayDifference.day
let hoursLeft = competitionDayDifference.hour
let minutesLeft = competitionDayDifference.minute
【问题讨论】:
-
哪一行显示错误?
-
错误信息不是很清楚吗?
dateFromComponents()采用 NSDateComponents 参数。在dateFromComponents(competitionDate)中,您正在传递一个 NSDate。 -
@MartinR 你知道我该如何解决吗?如果您可以在代码中显示它,将不胜感激
-
@Gjeruldsen:正如 Rob 所说,目前尚不清楚您要达到的目标。
标签: swift nsdate nscalendar nsdatecomponents