2015-06-11 16 views
22

Hi otrzymuję ten błąd w Swift 2,0Swift składniki 2,0 kalendarzowych błąd

nie może powoływać się 'składników' z listy argumentów typu '(NSCalendarUnit, fromdate: NSDate ?, todate: opcje NSDate ?,: zero)'

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) 

Odpowiedz

49

jako Swift 2 NS_OPTIONS (np NSCalendarOptions) są odwzorowywane na szybki jak OptionSetType który oferuje interfejs nastawiania podobne. W szczególności, „nie ma opcji” mogą być określone jako [] zamiast nil:

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

Zobacz także Swift 2.0 - Binary Operator "|" cannot be applied to two UIUserNotificationType operands i ostatnio dodanych odpowiedź na How to create NS_OPTIONS-style bitmask enumerations in Swift? aby uzyskać więcej informacji.

+0

Dziękuję bardzo !! – Boss

1

Nie można przekazać zero jako argument opcji. Zamiast tego użyj pustego zestawu opcji:

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

Należy również pamiętać o rozwinięciu calcDesp i calHoy.

1

można również użyć rawValue jak następuje:

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

Powiązane problemy