Мое приложение планирует 64 уведомления в тот момент, когда пользователь нажимает кнопку «Сохранить».Если при добавлении уведомления произошла ошибка, я бы хотел отобразить сообщение об ошибке.Однако добавление уведомлений происходит асинхронно, поэтому я не могу вовремя обнаружить ошибку.Как я могу заставить мою ветку ждать, пока все уведомления будут добавлены, прежде чем продолжить?Моя переменная errorSettingUpNotifications всегда равна false из-за асинхронных функций, поэтому моя проверка ошибок внизу в настоящее время не работает.
var errorSettingUpNotifications = false
for i in 0...maxNumberOfReminders
{
let randomWordIndex = Int(arc4random_uniform(UInt32(Int(words.count - 1))))
let content = UNMutableNotificationContent()
let identifier = "Word\(i)"
content.title = "Word Of The Day"
content.body = "\(Array(words)[randomWordIndex].key) - \(Array(words)[randomWordIndex].value)"
let trigger = UNCalendarNotificationTrigger(dateMatching: Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: Calendar.current.date(byAdding: .day, value: i, to: startDate)!), repeats: false)
let request = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request){
(error) in
if error != nil
{
errorSettingUpNotifications = true
}
}
}
if (errorSettingUpNotifications == true)
{
SVProgressHUD.showError(withStatus: "There was an error setting up your notifications. Please check your internet connection and try again.")
}
else
{
SVProgressHUD.showSuccess(withStatus: "Settings saved successfully")
}