Salut, je reçois cette erreur dans Swift 2.0
Impossible d'appeler des 'composants' avec une liste d'arguments de type '(NSCalendarUnit, fromDate: NSDate ?, toDate: NSDate ?, options: 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)
Au Swift 2, NS_OPTIONS
(comme NSCalendarOptions
) sont mappés à Swift en tant que OptionSetType
qui offre une interface de type ensemble. En particulier, "aucune option" ne peut désormais être spécifié comme []
au lieu de nil
:
let components = cal.components(unit, fromDate: calcDesp!, toDate: calHoy!,
options: [])
Voir aussi Swift 2.0 - L'opérateur binaire "|" ne peut pas être appliqué à deux opérandes UIUserNotificationType et les réponses récemment ajoutées à Comment créer des énumérations de masques de bits de style NS_OPTIONS dans Swift? pour plus information.
vous pouvez également utiliser rawValue
comme suit:
cal.components(unit, fromDate: calcDesp!, toDate: calHoy!, options: NSCalendarOptions(rawValue: 0))
Vous ne pouvez pas passer à zéro comme argument d'options. Utilisez un ensemble d'options vide à la place:
let components = cal.components(unit, fromDate: calcDesp!, toDate: calHoy!, options: [])
Vous devez également vous assurer de déballer calcDesp et calHoy.