it-swarm.com.de

Xcode 8 und Swift 3 NSCalendar

Ich habe mein Watch-Projekt in Swift implementiert und bin jetzt wegen Xcode 8 auf Swift 3 umgestellt.

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 gibt Fehler in diesen Zeilen und ich kann das Problem nicht verstehen.

FEHLER: Der Kontexttyp 'Kalender' kann nicht mit dem Array-Literal verwendet werden 

FEHLER: Die Argumentkennungen '(Bezeichner :)' stimmen nicht mit den verfügbaren .__ überein. Überlastungen

FEHLER: Der Wert des Typs 'Kalender' kann nicht in das erwartete Argument .__ konvertiert werden. Typ 'NSCalendar.Unit'

14
TheZipper

Zunächst enthalten weder NSCalendarUnit in Swift 2 noch Calendar.Component in Swift 3 die Komponenten firstWeekday und monthSymbols.

In Swift 3 entspricht Ihr Code

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

Ändern Sie den Typ von unitFlags in Set

0
DerrickHo328