我刚遇到一个问题需要我一段时间才能解决,并且没有看到它在SO上提到过,所以现在就是这样。我只是尝试以编程方式将事件添加到我的日历中超过1个月,而在iOS7(不是iOS6)上这些事件不会显示在日历中,当我对日历执行(编程)查询时它们都不可用。添加过去未来日期或日期最多1个月的事件工作正常。
以下是我用来添加事件的代码:
EKEvent *newCalendarEvent = [EKEvent eventWithEventStore:eventStore];
// In seconds; one hour default duration.
#define DURATION_OF_EVENT 60*60
newCalendarEvent.startDate = self.date;
// If I just use the startDate as the end date, then the height of the event in the calendar is really short.
NSDate *endEventDate = [[NSDate alloc] initWithTimeInterval:DURATION_OF_EVENT sinceDate:self.date];
newCalendarEvent.endDate = endEventDate;
newCalendarEvent.title = [self getEventTitle];
newCalendarEvent.calendar = cal;
NSError *error = nil;
[eventStore saveEvent:newCalendarEvent span:EKSpanThisEvent error:&error];
if (error) {
NSLog(@"CalendarIntegration.integrateDate: Error saving event: %@", error);
}
答案 0 :(得分:1)
事实证明这似乎是iOS7在Mail,Contacts,Calendars>下设置应用程序设置的副作用。同步。我的设置是1个月。通过将其更改为3个月,我能够创建长达3个月的事件并将它们显示在日历中。请注意,我在谈论创建日历事件的设备上的日历,在这种情况下,我无法看到日历同步将如何应用。但显然,并非所有人(例如Apple)都同意这一点。