2010-07-05 85 views
3

我试图对日历中的EKEvent对象进行一些更改。我有一个事件,例如从上午1点到上午2点。当我将allDay属性设置为YES时,此事件正确更改并显示在日历的全天部分。但这不是相反的方式。我正确设置开始时间和结束时间,将allDay属性设置为NO,但事件保持原样。时间更改不会更新。下面是我在做什么:正在更新EKEvent

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 

变化的工作都和我没有得到任何错误 - 只有改变阿迪是为NO不起作用。我看了一下Apple的文档,只发现可以设置事件开始和结束日期的信息。我不确定这是否意味着allDay活动也包含在内并且可以设置。

有没有人为此提供解决方案?

回答

0

在设置开始日期和结束日期之前,您是否尝试过设置第一个allDayEvent = NO?同时检查时区属性。全天事件没有一个,但正常的事件可以。

0

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

0

是的,我保存更新的事件时发现了一些奇怪的外观。我有一个技巧方法。您可以删除预先事件,并保存新事件。它适合我。祝你好运。