点击按钮时,如何删除默认日历中的所有事件?
这是我当前的代码
@IBAction func deleteEvents(_ sender: UIButton) {
eventStore.calendars(for: .event).removeAll()
}
第一个问题不是当前的日历。第二个问题是我得到以下错误:
错误:
不能对不可变值使用可变成员:函数调用返回不可变值
没有removeAll
方法。
您需要使用EKEventStore
的方法来查询和删除所需的事件。
在高水平上,您需要:
- 请求访问日历事件的授权
- 获取所需
EKCalendar
的参考 - 为要查询的事件创建一个谓词。你需要一个日期范围和日历
- 枚举与谓词匹配的事件
- 删除每个枚举的事件
所有需要的API都在EKEventStore
类中。有关详细信息,请参阅其文档。