Comment puis-je exécuter par exemple des notifications locales? Dans UNUserNotificationCenter, il n'y a pas de fonction de répétition. Peut-être que vous utilisez NSTimer ou quelque chose comme ça?Répéter une action toutes les x minutes entre "A" un.m. et "B" p.m
Pourquoi mon code ne fonctionne pas comme je m'y attendais
let hours: [Int] = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]
for hour in hours {
for minute in stride(from: 0, to: 60, by: 5){
let content = UNMutableNotificationContent()
content.title = "Title"
content.body = "Body"
var dateComponents = DateComponents()
dateComponents.hour = hour
dateComponents.minute = minute
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true)
let request = UNNotificationRequest(identifier: "timerDone", content: content, trigger: trigger)
let center = UNUserNotificationCenter.current()
center.add(request) { (error : Error?) in
if let theError = error {
print(theError.localizedDescription)
}
}
}
}
Vous pouvez programmer une notification de répétition dans 'UNNotificationCenter' en utilisant un' UNTimeIntervalNotificationTrigger' mais vous ne pouvez pas spécifier qu'il cesse de répéter à un certain moment de la journée et reprendre à un autre moment. – Paulw11
Peut-être que [Calendrier] (https://developer.apple.com/documentation/foundation/calendar) est également une option. – shallowThought
Pourquoi ce code ne crée pas de notifications toutes les 5 minutes? J'ai pris en compte la réponse mise à jour, mais si je veux utiliser UNCalendarNotificationTrigger dans la boucle for in, cela ne crée pas de notifications. @ Paulw11 – Obarg