更新EKEvent

时间:2010-07-05 14:25:24

标签: cocoa-touch events calendar

我正在尝试对日历中的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事件都包含在内并且也可以设置。

有没有人可以解决这个问题?

3 个答案:

答案 0 :(得分:0)

您是否尝试在设置开始日期和结束日期之前先设置allDayEvent = NO?还要检查时区属性。全天活动没有,但正常活动可以。

答案 1 :(得分:0)

我在Google Apps日历上通过共享日历活动遇到了这个问题。我还没有提出解决方案,但是如果您创建和/或编辑属于您的事件(至少使用iCloud),那么设置EKEvent.allDay = YES将具有所需的效果。

答案 2 :(得分:0)

是的,我在保存更新的活动时发现了一些奇怪的外观。我有一个技巧方法。您可以删除前置事件,并保存新事件。它对我有用。祝你好运。