У меня есть контроллер представления с несколькими UITableviews.Я хочу, чтобы при удалении строки из представления таблицы удалялось уведомление, связанное с этой строкой, вот мой код, но я получаю сообщение об ошибке Index out of range
, вот ссылка на мой проект, если кто-то захочет его протестировать: https://files.fm/f/nwx8e7je
Мой код: он работает без простой строки, но с индексной строкой я получаю сообщение об ошибке.
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
if tableView == ScheduleTableView{
let defaults = UserDefaults.standard
var myarray = defaults.stringArray(forKey: "ScheduleArray") ?? [String]()
var myarray2 = defaults.stringArray(forKey: "ScheduleTimeArray") ?? [String]()
// Remove Row
myarray.remove(at: indexPath.row)
myarray2.remove(at: indexPath.row)
defaults.set(myarray, forKey: "ScheduleArray")
defaults.set(myarray2, forKey: "ScheduleTimeArray")
ScheduleTableView.deleteRows(at: [indexPath], with: .fade)
UserDefaults.standard.synchronize()
// Remove Notification
let center = UNUserNotificationCenter.current()
let arrayToSearch = myarray[indexPath.row] as String
center.getPendingNotificationRequests { (notifications) in
for item in notifications {
if(item.identifier.contains(arrayToSearch)) {
center.removePendingNotificationRequests(withIdentifiers: [item.identifier])
}
}
}
}
if tableView == GoalsTableView{
}
}