使用EKEventEditViewController时出错

时间:2011-10-20 02:23:08

标签: ios5

我有以下代码:

EKEventEditViewController *addController = [[EKEventEditViewController alloc] initWithNibName:nil bundle:nil];

EKEvent * event = [EKEvent eventWithEventStore:eventStore];

event.startDate = startDate;

event.endDate = endDate;

addController.eventStore = self.eventStore;

addController.event = event;

addController.editViewDelegate = self;

[self presentModalViewController:addController animated:YES];   
[addController release];

它显示了一个添加iCal等事件的屏幕,但是当我按下“完成”按钮添加事件时,我收到了警告“该事件不属于该事件存储”。在控制台日志中,我得到"Calendar: unable to save: Error Domain=EKErrorDomain Code=11 "该事件不属于该事件存储。" UserInfo=0xfecb150 {NSLocalizedDescription=That event does not belong to that event store.}",但这只发生在iOS 5中,确定为4.可以有人帮我这个:)

2 个答案:

答案 0 :(得分:4)

我得到@Airsource Ltd在his answer中描述的相同行为:

  

...如果我尝试保存一个具有starttime == endtime的事件,那么我最初会收到错误“没有设置结束日期”。如果我然后设置不同的结束时间,我会得到“该事件不属于该事件存储”。

但是,如果事件的startDateendDate的初始值完全相同,则似乎只会发生这种情况。

这似乎是iOS 5的错误。我的解决方法:使事件的初始startDateendDate始终有所不同,例如:第二个:

  if ([event.endDate isEqualToDate:event.startDate]) {
    event.endDate = [event.startDate dateByAddingTimeInterval:1.0]; // add one second
  }

答案 1 :(得分:0)

我有同样的问题。如果我尝试保存一个具有starttime = endtime的事件,那么我最初会收到错误“没有设置结束日期”。如果我然后设置不同的结束时间,我会得到“该事件不属于该事件存储”。

我在调试器中注意到,通常在取消事件时,细节仍然存在于EKEventEditController.event中。但是,如果在“未设置结束日期”错误后取消,则事件仅包含开始和结束时间。标题已被删除。我的理论是,对eventStore的引用也已被填空,这是触发第二个错误的原因。

我在“没有结束日期错误”之后按下OK然后点击取消并检查控制器的事件之前中断了代码 - 但所有看起来都没问题,这意味着我的理论不太正确。但是必须有一些脱节出现在eventstore和事件之间以显示此错误。

我也只在iOS 5上遇到此问题。我的iOS 4.2设备很好。