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'
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)
Ändern Sie den Typ von unitFlags in Set