Swift 2.0日历组件错误

Swift 2.0 calendar components error

嗨,我在 swift 2.0

中收到此错误

无法使用类型为“(NSCalendarUnit, fromDate: NSDate?, toDate: NSDate?, options: nil)”的参数列表调用 'components'

var hoy = dataFormatter.stringFromDate(NSDate())
        var despues = dataFormatter.stringFromDate(fecha)
        var calHoy = dataFormatter.dateFromString(hoy)
        var calcDesp = dataFormatter.dateFromString(despues)
        let cal = NSCalendar.currentCalendar()
        let unit:NSCalendarUnit = .Day
        let components = cal.components(unit, fromDate: calcDesp, toDate: calHoy, options: nil) 

从 Swift 2 开始,NS_OPTIONS(例如 NSCalendarOptions)作为 OptionSetType 映射到 Swift 它提供了一个类似集合的界面。特别是 "no options" 现在可以指定为 [] 而不是 nil:

let components = cal.components(unit, fromDate: calcDesp!, toDate: calHoy!,
                               options: []) 

另见 以及最近添加到 How to create NS_OPTIONS-style bitmask enumerations in Swift? 的答案以获取更多信息。

您不能将 nil 作为选项参数传递。请改用空选项集:

let components = cal.components(unit, fromDate: calcDesp!, toDate: calHoy!, options: [])

您还必须确保解包 calcDesp 和 calHoy。

您也可以像下面这样使用 rawValue :

cal.components(unit, fromDate: calcDesp!, toDate: calHoy!, options: NSCalendarOptions(rawValue: 0))