Не удается удалить EKCalendar, появляется ошибка домена =EKErrorDomain Code=72
Я хочу удалить EKCalendar. Это отлично работает на устройствах iOS и симуляторах, однако попытаться заставить это работать на Catalina проблематично. Что бы я ни пытался, я получаю следующее:
Error Domain=EKErrorDomain Code=72 "Невозможно удалить календарь, если в результате в учетной записи не останется календарей, которые могут быть календарем планирования по умолчанию". UserInfo={NSLocalizedDescription= Невозможно удалить календарь, если это приведет к тому, что в аккаунте не останется календарей, которые могут быть календарем планирования по умолчанию.}
Есть указатели? Я гнался за этим неделями! Спасибо!
Мне предоставлено разрешение на использование календарей и напоминаний:
import UIKit
import EventKit
class ViewController: UIViewController {
let eventStore = EKEventStore()
func deleteCal (eventStoreToUse: EKEventStore) {
let calsArray = eventStoreToUse.calendars(for: .event)
for cals in calsArray {
print (cals.title)
if cals.title == "Gaps2" || cals.title == "Done" {
do { try _ = eventStoreToUse.removeCalendar(cals, commit: true)
} catch {
print ("Error \(error)")
}
} else {
print ("Did not delete \(cals.title)")
}
}
}
func askAccess() {
switch EKEventStore.authorizationStatus(for: .event) {
case .authorized:
print ("Calendars Access Granted")
case .denied:
print("Access denied")
case .notDetermined:
eventStore.requestAccess(to: .event, completion:
{[weak self] (granted: Bool, error: Error?) -> Void in
if granted {
print("Granted")
self?.deleteCal(eventStoreToUse: (self?.eventStore)!)
} else {
print("Access denied")
}
})
default:
print("Case default")
}
switch EKEventStore.authorizationStatus(for: .reminder) {
case .authorized:
print ("Reminders Access Granted")
case .denied:
print("Access denied")
case .notDetermined:
eventStore.requestAccess(to: .event, completion:
{[weak self] (granted: Bool, error: Error?) -> Void in
if granted {
print("Granted")
self?.deleteCal(eventStoreToUse: (self?.eventStore)!)
} else {
print("Access denied")
}
})
default:
print("Case default")
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
askAccess()
deleteCal(eventStoreToUse: eventStore)
}
}