【问题标题】:EventKit: Deleted calendar reappearsEventKit:删除的日历重新出现
【发布时间】:2015-11-03 13:01:14
【问题描述】:

我在 iOS 中使用 EventKit 与 Calendar.app 进行交互。在一种情况下,我需要从我的应用程序中删除一个日历。所以我使用 EventStore.removeCalendar(_:Commit:) 函数并将提交设置为 true。我要删除的日历是 iCloud 日历。

但是,我发现日历被删除后,它又重新出现了。我很肯定重新添加日历不是我的错误,因为我只有一个关于在我的应用程序中创建日历的功能,并且在删除和重新出现之间不会调用它。

我怀疑是 iCloud 自动将其添加回来。我尝试在删除前进入飞行模式,删除的日历再也没有出现过。

有没有人遇到过类似的问题?如果是这样,我如何告诉 iCloud 我要删除日历,所以不要添加回来。

谢谢。

【问题讨论】:

  • 这在 iOS 11 中仍然是一个问题,在应用中创建的活动 iCloud 同步日历在删除后会不断重新出现。我现在使用的解决方法:仅删除事件并保留空日历。

标签: ios iphone eventkit


【解决方案1】:

您不能告诉 iCloud 不要重新添加日历。我的猜测是,当 iCloud 从不同的设备同步内容(也包括给定日历中的更新)时,它会将这些内容视为更高的优先级,从而将日历添加回来。

这是我在通过“日历”应用程序删除日历时偶尔发生的事情,所以简短的回答是您不能强制日历保持被删除状态。

【讨论】:

  • 感谢您的回答。如果是这种情况,是否意味着 3 方应用程序可以轻松删除 iCloud 日历?我认为 API 应该足够聪明,让 iCloud 知道这是用户发起的删除,因此它可以在所有设备上删除相同的日历。
  • 我的经验是,如果我从 calendar.app 中删除日历,iCloud 不会将其恢复。我认为应该有一种方法可以通过使用 EventKit API 来实现相同的目标。
  • 如果通过 calendar.app 删除日历,它可以在从其他设备接收延迟同步的情况下恢复(例如,互联网连接已关闭)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-29
  • 2013-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-24
  • 1970-01-01
相关资源
最近更新 更多