Ошибка компонентов 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)
Ответы
Ответ 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))