Я написал код для создания события.
Код довольно прост:
let eventStore : EKEventStore = EKEventStore()
eventStore.requestAccess(to: .event, completion: {
granted, error in
if (granted) && (error == nil) {
print("granted \(granted)")
print("error \(String(describing: error))")
let event:EKEvent = EKEvent(eventStore: eventStore)
event.title = title
event.startDate = startDate
event.endDate = endDate
event.notes = "Lecture"
event.calendar = eventStore.defaultCalendarForNewEvents
// eventStore.saveEvent(event, span: EKSpanThisEvent, error: nil)
guard ((try? eventStore.save(event, span: EKSpan.thisEvent, commit: true)) != nil)else{
print("error saving event")
completion(false)
return
}
print("Saved Event")
}}
Когда код запускается в первый раз, он выдает эту ошибку:
[EventKit] Ошибка при получении календаря по умолчанию для новых событий: Error Domain = EKCADErrorDomain Code = 1019 "(null)"
2018-05-18 00: 18: 16.586150 + 0500 SevimFahrschuleMobile [11413: 3650672] [EventKit] Идентификатор объекта не предоставлен. Не узнает, существует ли объект.
Но когда я снова запускаю этот код, он работает.
Я не получаю.
Здесь есть похожий вопрос, но решение заключается в том, чтобы получить авторизацию для напоминаний и затем сохранить событие, т.е.
eventStore.requestAccess(to: .reminder) { (<#Bool#>, <#Error?#>) in
<#code#>
}
, что звучит для меня совершенно нелогично.
Дайте мне знать, если увидите причину неудачи в первый раз.
Спасибо