ios swift nscalendar

ios - Error de componentes del calendario Swift 2.0



nscalendar (3)

Hola, recibo este error en swift 2.0

No se pueden invocar ''componentes'' con una lista de argumentos de tipo ''(NSCalendarUnit, fromDate: NSDate ?, toDate: NSDate ?, opciones: nil)''

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)


A partir de Swift 2, NS_OPTIONS (como NSCalendarOptions ) se asignan a Swift como OptionSetType que ofrece una interfaz similar a un conjunto. En particular, "sin opciones" ahora se puede especificar como [] lugar de nil :

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

Consulte también Swift 2.0 - Operador binario "|" no se puede aplicar a dos operandos UIUserNotificationType y las respuestas agregadas recientemente a Cómo crear enumeraciones de máscara de bits de estilo NS_OPTIONS en Swift? para más información.


No puede pasar nulo como argumento de opciones. Utilice un conjunto de opciones vacío en su lugar:

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

También debe asegurarse de desenvolver calcDesp y calHoy.


También puede usar rawValue la siguiente manera:

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