嗨,我在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)
答案 0 :(得分:49)
从Swift 2开始,NS_OPTIONS
(例如NSCalendarOptions
)作为OptionSetType
映射到Swift
它提供了类似集合的界面。特别是,"没有选项"
现在可以指定为[]
而不是nil
:
let components = cal.components(unit, fromDate: calcDesp!, toDate: calHoy!,
options: [])
另见Swift 2.0 - Binary Operator "|" cannot be applied to two UIUserNotificationType operands 以及最近添加的How to create NS_OPTIONS-style bitmask enumerations in Swift?答案以获取更多信息。
答案 1 :(得分:1)
你不能传递nil作为你的选项参数。改为使用空选项集:
let components = cal.components(unit, fromDate: calcDesp!, toDate: calHoy!, options: [])
您还必须确保打开calcDesp和calHoy。
答案 2 :(得分:1)
您还可以使用rawValue
,如下所示:
cal.components(unit, fromDate: calcDesp!, toDate: calHoy!, options: NSCalendarOptions(rawValue: 0))