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

标签 swift ekevent ekeventstore

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

这是我当前的代码

     @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 类中。有关详细信息,请参阅其文档。

关于swift - 如何从默认日历中删除所有事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47275457/

相关文章:

ios - 从 Firebase 设置用户值

swift - 传递方法而不是闭包时会发生保留循环

ios - EKEvent 不保存 EKAlarm 但仅在某些设备上没有错误

ios - EKEventKit - 如何在批量提交后检索 eventIdentifier?

ios - 为什么当我点击增量按钮时我的步进器没有给出正确的值?

swift - 选择新的 UITextField 时更新 UIPickerView 行

cocoa - 事件的发生日期与开始日期有何不同?

swift - 如何获取 EKEvent 实例的 travelTime

ios - 确定您的应用程序是否可以在不启动请求的情况下访问日历?

ios - 如何在后台 iOS 应用程序时收听日历事件?