我已成功使用Eventkit
将应用程序的事件保存到本地日历,但是现在我想删除仅使用应用程序保存的事件。
但是下面的代码为我提供了日历上保存的所有事件的列表,但是我只想删除自己保存的事件。我该怎么办?
let predicate = eventStore.predicateForEvents(withStart: start, end: endDate, calendars: [calendar])
let events = eventStore.events(matching: predicate)
答案 0 :(得分:2)
将事件保存到日历时,您可以存储EKEvent
的{{3}}属性。
当您要删除自己创建的事件时,可以按标识符查询它们。
注意:仅在调用eventIdentfier
方法之后存储eventStore.save(...)
。
答案 1 :(得分:0)
您只能通过将事件标题与获取的事件进行比较来删除事件:
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)
}