Swift 2.0:无法将NSDateComponents转换为NSCalendarUnit

时间:2015-11-17 20:56:05

标签: ios swift nscalendar

以下是接收问题代码的代码行:

let CompetitionDayDifference = userCalendar.components (dayCalendarUnit, fromDate: currentDate!, toDate: competitionDay, options: nil)

问题代码:

  

无法将NSDateComponents类型的值转换为预期参数   输入NSCalendarUnit

附加代码:

let userCalendar = NSCalendar.currentCalendar()


let competitionDate = NSDateComponents()
competitionDate.year = 2015
competitionDate.month = 6
competitionDate.day = 21
competitionDate.hour = 08
competitionDate.minute = 00
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 = userCalendar.components (dayCalendarUnit, fromDate: currentDate!, toDate: competitionDay, options: [])

1 个答案:

答案 0 :(得分:2)

根据错误,您的dayCalendarUnit是NSDateComponents类型的变量。你应该传递一个NSCalendarUnit。从Swift 2.0开始,您也无法为nil传递选项参数,因此您需要传递一个空的选项集:

let CompetitionDayDifference = userCalendar.components(NSCalendarUnit.Day, fromDate: currentDate!, toDate: competitionDay, options: [])