Ich versuche, einen Code zu schreiben, mit dem Benutzer benutzerdefinierte lokale Benachrichtigungen festlegen können, um sie an einige Aufgaben zu erinnern. Ich benutze das Benutzerbenachrichtigungsframework. Im Grunde kann ein Benutzer entscheiden, eine Benachrichtigung zu setzen, die ihn daran erinnert, jede Woche etwas Seife zu kaufen oder jedes Jahr Geburtstagswünsche zu machen oder jeden Monat etwas zu überprüfen (dies sind nur Beispiele).Lokale Benachrichtigung in swift 3 Wiederholungsintervall von Benutzern ausgewählt
Bisher konnte ich eine lokale Benachrichtigung ohne Wiederholungsintervall festlegen.
func scheduleNotif() {
let dateformatter = DateFormatter()
dateformatter.dateStyle = DateFormatter.Style.medium
dateformatter.timeStyle = DateFormatter.Style.short
let dateFromString = dateformatter.date(from: selectDateTextField.text!)
let fireDateOfNotification: Date = dateFromString!
//if notif are allowed
let content = UNMutableNotificationContent()
content.title = notifTitleTextField.text!
content.body = notifNoteTextView.text
content.sound = UNNotificationSound.default()
content.badge = UIApplication.shared.applicationIconBadgeNumber + 1 as NSNumber
let triggerDate = Calendar.current.dateComponents([.year,.month,.day,.hour,.minute,.second,], from: fireDateOfNotification)
let trigger = UNCalendarNotificationTrigger(dateMatching: triggerDate,
repeats: false)
//Schedule the Notification
let titleNospace = notifTitleTextField.text?.replacingOccurrences(of: " ", with: "")
let identifier = titleNospace
let request = UNNotificationRequest(identifier: identifier!, content: content, trigger: trigger)
self.center.add(request, withCompletionHandler: { (error) in
if let error = error {
print(error.localizedDescription)
}
})
}
Das Datum wird von einer Datumsauswahl ausgewählt. Jetzt von einem anderen Picker ich möchte, dass der Benutzer das Wiederholungsintervall (keine, tägliche, wöchentliche, monatliche, jährliche und an bestimmten Tagen) auswählen. Ich bin mir nicht sicher, wie ich das erreichen kann. Muss ich eine if else if-Anweisung verwenden? (Es scheint mir nicht wirklich richtig.) Gibt es einen besseren Weg, dies zu erreichen? Vielen Dank!