Ich muss überprüfen, ob die vom Benutzer gewählte Stunde außerhalb der Arbeitszeit liegt. Ich versuche, dieses Ergebnis mit einer for in loop
und switch
Aussage zu erreichen, aber ich bin mir nicht sicher, wie man das umsetzt. Wenn var components
mit einem Wert im Array timeRestricted
übereinstimmt, sollte es von der switch-Anweisung abweichen. Danke für Ihre Hilfe.Überprüfen, ob der Wert im Array ist - DatePicker Swift
class FourthViewController: UIViewController {
@IBOutlet weak var myDatePicker: UIDatePicker!
var currentTime = NSDate()
let timeRestricted = [00,01,02,03,04,05,06,19,20,21,22,23]
var dateComponents = NSDateComponents()
var dateFormatter:NSDateFormatter = NSDateFormatter()
@IBOutlet weak var someLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm"
// load current time as minimum date
self.myDatePicker.minimumDate = NSDate(timeInterval: 1, sinceDate: currentTime)
myDatePicker.addTarget(self, action: #selector(self.datePickerAction(_:)), forControlEvents: UIControlEvents.ValueChanged)
}
func datePickerAction(sender: UIDatePicker) {
var timeSelected = sender.date
var unitFlags: NSCalendarUnit = [.Hour]
var components = NSCalendar.currentCalendar().components(unitFlags, fromDate: timeSelected)
for components in timeRestricted {
switch components {
case timeRestricted[0...12]: print("update label")
default: print(" record input data and segue to next screen")
}
}
}
}
Es funktioniert. Wenn Sie die gleiche Funktionalität mit einer For- und Switch-Anweisung implementieren würden, wie würden Sie das tun? Danke – bibscy
Ich habe keine Zeit für jetzt, werde meine Antwort später aktualisieren. – OOPer