2016-10-26 5 views
0

Ich wundere mich in diesen Tagen, wie kann ich 3, 10 und 20 Minuten von ausgewählten Zeitpunkt von Zeit Picker in Swift 3 subtrahieren. So zum Beispiel, wenn der Benutzer die Startzeit eines Ereignisses wählt, um Benachrichtigung 3 zu erhalten, 10 oder 20 Minuten vor dem vom Picker ausgewählten Zeitwert. Ich habe versucht,Minuten vom Zeitauswahlwert subtrahieren?

let value:TimeInterval = 1187.5 let periodComponents = startTimePicker.date.addingTimeInterval(-value)

für die 20 früheren Minuten, aber ich bin den Wert 2 Stunden hinter bekommen (kann die Konsole mir die GTM Zeit nur angezeigt wird). Ist es möglich, Benachrichtigungen von "periodComponens" zu planen, um jede Woche zur gewählten Uhrzeit an einem bestimmten Wochentag zu wiederholen? Oder sollte ich andere Subtraktionsmethode verwenden?

Antwort

-1

Es ist nichts falsch mit Ihrem Code. Die xcode-Konsole gibt standardmäßig nur die GMT-Datumszeit aus. Wenn Sie NSDateFormatter verwenden Ihre NSDate in NSString konvertieren und drucken Sie es aus, wird das Ergebnis sein, wie Sie

erwartet

Wenn Sie UILocalNotification verwenden und wollen es planen wöchentlich abzufeuern Sie seine Eigenschaft zur Verfügung gestellt repeatInterval-NSCalendarUnitWeekOfYear festlegen.

Zum Beispiel:

UILocalNotification *localNotif = [[UILocalNotification alloc] init]; 
NSDate *fireTime; // Your desired date time. 

localNotif.fireDate = fireTime; 
localNotif.repeatInterval = NSCalendarUnitWeekOfYear; 
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif]; 
+0

Für diejenigen, die meine Antwort downvoted: Wenn Sie Downvoted, weil es nicht in swift war, ich mein Bestes gerade versucht zu helfen. Nur weil ich keine Erfahrung mit swift habe, heißt das nicht, dass ich anderen nicht helfen kann, ihre Probleme zu lösen. –

0

über die eingebaute in Calendar Klasse:

let threeMinutesEarlier = Calendar.current.date(byAdding: .minute, value: -3, to: myPicker.date) 
Verwandte Themen