UNTimeIntervalNotificationTrigger
Сценарий таков: мне нужно запускать локальные уведомления для массива объектов, каждый после определенного интервала времени в секундах. Вот код, который работает только в течение 1 интервала, если я предоставил фиксированное количество секунд.
func DeliverMyMessage(_ dict: EnFact, _ index: Int){
let content = UNMutableNotificationContent();
content.body = dict.Content!;
content.categoryIdentifier = "learn";
content.userInfo = ["dictid": "Random Fact -\(dict.ID!)- \(dict.Reference!)" ];
content.sound = UNNotificationSound.default();
content.badge = 1;
print(secArray[index]);
var ui = TimeInterval.init(secArray[index]);
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)
let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: trigger)
cnter.add(request, withCompletionHandler: { (error) in
if let error = error {
// Something went wrong
print(error);
}
print("delivered");
})
}
Примечание: UNTimeIntervalNotificationTrigger(timeInterval: 5, если я предоставляю интервал исправления, скажем, 5 - все уведомления, которые я отправил из массива, срабатывают через 5 секунд,
затем, если я пытаюсь дать рассчитанную разницу в секундах в цикле, уведомления не запускаются
func DeliverMyMessage(_ dict: EnFact, _ index: Int){
let content = UNMutableNotificationContent();
content.body = dict.Content!;
content.categoryIdentifier = "learn";
content.userInfo = ["dictid": "Random Fact -\(dict.ID!)- \(dict.Reference!)" ];
content.sound = UNNotificationSound.default();
content.badge = 1;
print(secArray[index]);
var ui = TimeInterval.init(secArray[index]);
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5 + ui , repeats: false)
let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: trigger)
cnter.add(request, withCompletionHandler: { (error) in
if let error = error {
// Something went wrong
print(error);
}
print("delivered");
if(index < ( self.dictArray.count - 1) ){
self.DeliverMyMessage(self.dictArray[index + 1], index + 1);
}else{
print("all delivered");
}
})
}
в нем указывается вся поставка, но это не так, я использую iOS 11.3 XCode 9.3 swift 4, я застрял на нем, так как это последняя часть, которую мне нужно сделать в проекте - любая помощь очень ценится