month hours current ios swift swift2 swift3

ios - hours - Xcode 8 y Swift 3 NSCalendar



swift add time to date (2)

Implementé mi proyecto de reloj en Swift y ahora estoy migrando a Swift 3 debido a Xcode 8. Dejo que Xcode 8 cambie el código fuente a Swift 3. Sin embargo, hay errores en el código y no puedo resolverlo.

let unitFlags: Calendar = [.hour, .firstWeekday, .monthSymbols, .year, .minute, .firstWeekday] var calendar = NSCalendar.current calendar.timeZone = NSTimeZone(identifier: "UTC")! let components = (calendar as NSCalendar).components(unitFlags, from: reservationDate)

Xcode da error en estas líneas y no puedo entender el problema.

ERROR: tipo contextual ''Calendario'' no se puede usar con literal de matriz

ERROR: las etiquetas de argumento ''(identificador :)'' no coinciden con ninguna sobrecarga disponible

ERROR: No se puede convertir el valor del tipo ''Calendario'' al tipo de argumento esperado ''NSCalendar.Unit''


Cambiar el tipo de unidadFlags para establecer


En primer lugar, ni NSCalendarUnit en Swift 2 ni Calendar.Component en Swift 3 contienen los componentes firstWeekday y monthSymbols .

En Swift 3, el equivalente de tu código es

let unitFlags = Set<Calendar.Component>([.hour, .year, .minute]) var calendar = Calendar.current calendar.timeZone = TimeZone(identifier: "UTC")! let components = calendar.dateComponents(unitFlags, from: reservationDate)