如何从默认日历中删除所有事件

How to delete all events from the default calendar

如何在点击按钮时删除默认日历中的所有事件?

这是我当前的代码

     @IBAction func deleteEvents(_ sender: UIButton) {

         eventStore.calendars(for: .event).removeAll()
      }

第一个问题不是当前日历。第二个问题是我收到以下错误:

错误:

Cannot use mutating member on immutable value: function call returns immutable value

没有removeAll方法。

您需要使用EKEventStore的方法来查询和移除想要的事件。

在高层次上,您需要:

  1. 请求访问日历事件的权限。
  2. 获取对所需 EKCalendar 的引用。
  3. 为您要查询的事件创建谓词。您需要一个日期范围和日历。
  4. 枚举符合谓词的事件。
  5. 删除每个枚举事件。

所有需要的 API 都在 EKEventStore class 中。有关详细信息,请参阅其文档。