J'essaie d'écrire du code qui permettra aux utilisateurs de définir des notifications locales personnalisées pour leur rappeler certaines tâches. J'utilise le cadre de notification d'utilisateur. Donc, fondamentalement, un utilisateur peut décider de mettre en place une notification qui lui rappellera d'acheter du savon chaque semaine ou de faire des souhaits d'anniversaire chaque année ou de vérifier quelque chose chaque mois (ce ne sont que des exemples).Notification locale dans l'intervalle de répétition rapide 3 sélectionné par les utilisateurs
Jusqu'à présent, j'ai été en mesure de définir une notification locale sans intervalle de répétition.
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)
}
})
}
La date est sélectionnée à partir d'un sélecteur de dates. Maintenant, à partir d'un autre sélecteur, j'aimerais que l'utilisateur sélectionne l'intervalle de répétition (aucun, quotidien, hebdomadaire, mensuel, annuel et certains jours). Je ne sais pas comment je peux y arriver. Dois-je utiliser une instruction if else if? (ça ne me semble pas vraiment correct.) Existe-t-il un meilleur moyen d'y parvenir? Merci!