2015-06-11 5 views
22

Привет я получаю эту ошибку в быстрой 2,0Swift календарь 2,0 компоненты ошибки

не может ссылаться на «компоненты» со списком аргументов типа «(NSCalendarUnit, FromDate: NSDate ?, Todate: NSDate ?, опции: ноль)»

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) 

ответ

49

в Свифта 2 NS_OPTIONS (например, NSCalendarOptions) отображаются в Swift как OptionSetType , который предлагает подобный набор интерфейс. В частности, «без вариантов» теперь не может быть определен как [] вместо 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? для получения дополнительной информации.

+0

Большое спасибо !! – Boss

1

Вы не можете передать nil в качестве аргумента options. Вместо этого используйте пустой набор опций:

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

Вы также должны обязательно развернуть calcDesp и calHoy.

1

вы также можете использовать rawValue как следующее:

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