Как провести различие между событием, сохраненным в моем приложении, и событием, сохраненным с помощью приложения календаря с помощью EventKit?
Я успешно сохранил события своего приложения в локальный календарь, используя Eventkit
но теперь я хочу удалить события, которые я сохранил, используя только мое приложение. Но приведенный ниже код дает мне список всех событий, сохраненных в календаре, но я просто хочу удалить свое собственное сохраненное событие. Как я могу это сделать?
let predicate = eventStore.predicateForEvents(withStart: start, end: endDate, calendars: [calendar])
let events = eventStore.events(matching: predicate)
2 ответа
При сохранении событий в календарь вы можете сохранить EKEvent
Свойство eventIdentifier
А когда вы хотите удалить созданные вами события, вы можете запросить их по идентификаторам.
Примечание: магазин eventIdentfier
только после звонка eventStore.save(...)
метод.
Вы можете удалить событие, только сравнив заголовок события с выбранными событиями:
var allEvents: [EKEvent] = []
let eventStore = EKEventStore()
let calendars = eventStore.calendars(for: .event)
for calendar in calendars {
// end date (about) one year from now
let endDate = Date(timeIntervalSinceNow: 60*60*24*365)
let predicate = eventStore.predicateForEvents(withStart: Date(), end: endDate as Date, calendars: [calendar])
let events = eventStore.events(matching: predicate)
allEvents.append(contentsOf: events)
}
for event in allEvents {
print(event.title, "in", event.calendar.title)
}