我有以下代码:
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.可以有人帮我这个:)
答案 0 :(得分:4)
我得到@Airsource Ltd在his answer中描述的相同行为:
...如果我尝试保存一个具有starttime == endtime的事件,那么我最初会收到错误“没有设置结束日期”。如果我然后设置不同的结束时间,我会得到“该事件不属于该事件存储”。
但是,如果事件的startDate
和endDate
的初始值完全相同,则似乎只会发生这种情况。
这似乎是iOS 5的错误。我的解决方法:使事件的初始startDate
和endDate
始终有所不同,例如:第二个:
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设备很好。