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