1

我的 iOS 应用程序创建日历,用事件填充它,有时还会添加新事件。它存储创建日历的 ID 并仅使用它。无论如何,在某些情况下,此日历可能会被删除,例如,如果用户关闭与 iCloud 的同步并选择删除现有日历。我希望能够知道日历已被删除,以便我可以创建新日历并再次填充它。我尝试过的明显方法是查找我的应用程序存储的带有 ID 的日历,如果找不到带有此 ID 的日历,则认为它已被删除。但这种方法行不通。

问题是:当带有闹钟的事件被添加到日历时,这个日历不仅开始出现在日历应用程序中,而且还出现在提醒应用程序中。当用户关闭日历的 iCloud 并选择删除现有日历时,只会删除日历应用程序中的日历。提醒应用程序中的日历仍然存在。剩下的日历仍然有相同的ID,因此无法通过ID识别日历的删除。此日历也停止允许添加事件。当应用程序尝试向此日历添加事件时,会引发异常“该日历不支持该类型的项目”。

我想确定事件的“真实”日历已被删除。我尝试比较删除前后的日历。但以下属性保持不变:allowContentModifications、CGColor、immutable、title、type、source、subscribed、supportedEventAvailabilities、calendarIdentifier、description。

有没有人遇到过同样的问题?关于如何区分“事件和警报日历”与“仅警报日历”的任何想法?

(我唯一能想到的就是尝试添加测试预约,如果这个操作失败,考虑日历是“仅用于警报”。但这不方便)

4

0 回答 0