首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在EventKit中未正确创建事件警报与iOS4.3 /日历同步到Google

在EventKit中未正确创建事件警报与iOS4.3 /日历同步到Google
EN

Stack Overflow用户
提问于 2013-07-10 17:18:41
回答 2查看 929关注 0票数 4

我有一个看似直截了当的教科书案例,用EventKit来创建带有警报的事件。令人沮丧的是,它不起作用。我正在做的事情是:

  1. EKEvent创建一个[EKEvent eventWithEventStore:],并填写它的一堆属性
  2. 添加带有[myEvent addAlarm:[EKAlarm alarmWithRelativeOffset:]]的警报
  3. [myEventStore saveEvent:span:error:]保存事件

整个过程中唯一“不寻常”的事情是,我使用的手机带有一个较旧的iOS版本( iPhone 4上的iOS 4.3.3),而且我使用的所有日历都与同步。

我有一个日历(让我们称之为CalendarA),它设置在Google日历中,为新事件设置一个30分钟的自动警报,而另一个日历(CalendarB)没有为任何自动警报设置。

下面是我看到的坏行为:

  • 当我将具有某种非零EKAlarm (例如5分钟)的relativeOffset添加到CalendarA时,日历会忽略我的偏移量,并将其设置为30分钟。
  • 当我在CalendarB中做同样的事情时,我的警报会被完全忽略,并且事件最终没有警报。

真正奇怪的是什么:,如果我将relativeOffset设置为零,那么对于这种特殊情况,一切都很好!(在CalendarA和CalendarB两种情况下,都正确地添加了零偏移警报)。顺便说一句,如果我根本没有创建一个警报,事件在CalendarA仍然得到一个30分钟的警报。我想这件事是无能为力的。

我还尝试在事件创建后立即保存事件,然后立即向已经保存的实例添加警报并再次保存它。这没什么用。

如果我通过手机上的本地日历应用程序手动创建带有警报的事件,那么警报工作得非常好,所以我知道可以将任意警报同步到Google日历--问题是如何通过代码进行同步。

我怎样才能使我的事件警报行为正确?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-13 14:38:15

哇我刚解决了..。显然,这与iOS版本、Google等无关。我只是还没有意识到我需要将一个负值传递给alarmWithRelativeOffset。这完全是不直观的。与负偏移,它是完美的工作。这也解释了为什么零偏移之前是有效的。

(我想这可能与谷歌日历有关.我猜想其他日历可能会在事件发生后支持警报,这样我就可以更容易地调试这个问题,但是Google日历中不支持它,因此无效的“将来的警报”被忽略了)。

还有一个小问题,在CalendarA中根本无法在没有警报的情况下创建一个事件,但我猜这里什么也做不了--即使是本地日历应用程序也有这个问题。

票数 0
EN

Stack Overflow用户

发布于 2013-07-19 10:20:25

这对我在iOS 4.2上有用,看看它是否对你也有帮助。

代码语言:javascript
运行
复制
 EKEventStore* eventStore = [[EKEventStore alloc] init];
 EKEvent* event = [EKEvent eventWithEventStore:eventStore];
 // set startDate, endDate, title, location, etc.

[event addAlarm:[EKAlarm alarmWithRelativeOffset:60.0f * -5.0f]]; // 5 min

[event setCalendar:[eventStore defaultCalendarForNewEvents]];
NSError* error = nil;
BOOL success = [eventStore saveEvent:event span:EKSpanThisEvent error:&error]; 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17576964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档