我正在尝试对日历中的EKEvent对象进行一些更改。我有一个事件,例如从凌晨1点到凌晨2点。当我将allDay属性设置为YES时,此事件被正确更改并显示在日历的全天部分中。但它并没有相反的工作方式。我正确设置开始和结束时间,并将allDay属性设置为NO,但事件保持原样。时间更改未更新。这就是我正在做的事情:
EKEvent *event = [self.eventStore eventWithIdentifier:MY_IDENTIFIER];
NSDate *start = [NSDate date]; // Get the current time
NSDate *end = [start addTimeInterval:3600]; // Add one hour
event.startDate = start;
event.endDate = end;
event.allDay = NO;
// Set some other event properties like title, location....
NSError *error;
[self.eventStore saveEvent:event span:EKSpanThisEvent error:&error]; // Save changes and make them appear in the calendar
更改工作全部,我没有收到任何错误 - 只有将allDay YES更改为NO不起作用。我查看了Apple的文档,只发现了可以设置事件开始和结束日期的信息。我不确定这是否意味着allDay事件都包含在内并且也可以设置。
有没有人可以解决这个问题?
答案 0 :(得分:0)
您是否尝试在设置开始日期和结束日期之前先设置allDayEvent = NO?还要检查时区属性。全天活动没有,但正常活动可以。
答案 1 :(得分:0)
我在Google Apps日历上通过共享日历活动遇到了这个问题。我还没有提出解决方案,但是如果您创建和/或编辑属于您的事件(至少使用iCloud),那么设置EKEvent.allDay = YES将具有所需的效果。
答案 2 :(得分:0)
是的,我在保存更新的活动时发现了一些奇怪的外观。我有一个技巧方法。您可以删除前置事件,并保存新事件。它对我有用。祝你好运。