EKAlarm不会在iOS 5中设置

我写了下面的代码创build一个事件。 设置闹钟在iOS 4中工作正常,但在iOS 5中没有设置。 这是一个错误还是我错过了什么?

EKCalendar *cal = [self.eventStore defaultCalendarForNewEvents]; EKEvent *event = [EKEvent eventWithEventStore:self.eventStore]; event.calendar = cal; // ....... EKAlarm *alarm = [EKAlarm alarmWithRelativeOffset:-3600]; event.alarms = [NSArray arrayWithObject:alarm]; // ....... 

我有同样的错误。

问题似乎startDate不应该像endDate一样 …真的很愚蠢的iOS更改!

这似乎与此故障单中发生的事件有关: EventKit – 在添加具有两个警报(iOS 5)的EKEvent时,应用程序冻结 。

如果您查看iOS 4.3文档中的iOS 5更改中的EventKit部分,则会提到EKEvent中的某些项目已被弃用。 层次已经改变,并添加了一个新的抽象超类: EKCalendarItem 。

避免操纵警报数组。 您需要将警报添加到您的活动中,如下所示:

 EKAlarm *reminder = [EKAlarm alarmWithRelativeOffset:-300]; [event addAlarm:reminder]; 

这将在开始时间前5分钟添加提醒。