我有一个看似简单的教科书案例,使用 EventKit 创建带有警报的事件。令人沮丧的是,它不起作用。这就是我正在做的事情:
- 创建
EKEvent
一个[EKEvent eventWithEventStore:]
并填写它的一堆属性 - 添加警报
[myEvent addAlarm:[EKAlarm alarmWithRelativeOffset:]]
- 保存事件
[myEventStore saveEvent:span:error:]
整个过程唯一“不寻常”的事情是我使用的是旧版 iOS 手机(iPhone 4 上的 iOS4.3.3),并且我使用的所有日历都同步到 Google 日历。
我有一个日历(我们称之为 CalendarA),它在 Google 日历中设置为有一个针对新事件的自动 30 分钟警报,还有另一个日历 (CalendarB),它没有为任何自动警报设置。
这是我看到的破碎行为:
- 当我添加一个
EKAlarm
某种非零 relativeOffset(例如 5 分钟)时,日历会忽略我的偏移量并将其设置为 30 分钟 - 当我在 CalendarB 中做同样的事情时,我的警报被完全忽略,事件最终没有警报
真正奇怪的是:是:如果我将 relativeOffset 设置为零,那么对于这种特殊情况,一切都很好!(在 CalendarA 和 CalendarB 情况下都正确添加了零偏移警报)。顺便说一句,如果我根本不创建闹钟,CalendarA 中的事件仍然会收到 30 分钟的闹钟。我想对此无能为力。
我还尝试在事件创建后立即保存事件,然后立即向已保存的实例添加警报并再次保存。这没有帮助。
如果我通过手机上的本机日历应用程序手动创建带有警报的事件,警报工作得很好,所以我知道可以将任意警报同步到 Google 日历 - 问题是如何通过代码来做到这一点。
如何使我的事件警报正常运行?