Подтвердить что ты не робот

Ошибка компонентов Swift 2.0

Привет, я получаю эту ошибку в swift 2.0

Невозможно вызвать "компоненты" с помощью списка аргументов типа (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) 
4b9b3361

Ответ 1

С Swift 2, NS_OPTIONS (например, NSCalendarOptions) отображаются в Swift как a OptionSetType который предлагает наборный интерфейс. В частности, "нет вариантов" теперь можно указать как [] вместо nil:

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

См. также Swift 2.0 - Двоичный оператор "" " не может применяться к двум операндам UIUserNotificationType и недавно добавленные ответы на Как создать NSM-элементы в стиле битмакс в Swift? для получения дополнительной информации.

Ответ 2

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

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

Вы также должны убедиться, что распакуете calcDesp и calHoy.

Ответ 3

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

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