2015-11-03 59 views
0

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

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

我怀疑是iCloud会自动加回来的。我试图在删除之前进入飞行模式,并且删除的日历不会再出现。

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

谢谢。

回答

0

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

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

+0

感谢您的回答。如果是这样的话,这意味着3方应用程序可以轻松删除iCloud日历吗?我认为API应该足够聪明,让iCloud知道这是用户启动的删除,因此它可以在所有设备上删除相同的日历。 – Steve

+0

我的经验是,如果我从calendar.app中删除日历,iCloud不会将其恢复。我认为应该有一种方法来使用EventKit API实现同样的功能。 – Steve

+0

如果通过calendar.app删除日历,则可以在收到来自其他设备的延迟同步(例如,互联网连接关闭)的情况下将其恢复。 –