gpt4 book ai didi

同步到 Exchange 帐户时,iOS 无法更新日历事件

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:01:37 24 4
gpt4 key购买 nike

我在使用 Exchange 电子邮件帐户更新 iPad 上的日历事件时遇到问题。它会创建新事件没问题,但在更新时,它会创建另一个事件,而不是更新现有事件。一些事情

  • 下面的代码适用于任何其他类型的电子邮件帐户(比如 gmail)
  • 如果我没有电子邮件,下面的代码可以工作(所以它只写入本地日历)
  • 是的,我检查过我的 Exchange 电子邮件是否启用了日历

抛出的错误是:

Error getting event with identifier 9E678016-F8E4-46B1-9043-E54E09A148F0:5A89FFAF15B1408386A9CBD518BBDD770: Error Domain=EKCADErrorDomain Code=1010

这是我正在使用的代码。

 [self.eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
if (granted) {
dispatch_sync(dispatch_get_main_queue(), ^{
NSString *appleEventId = [item valueForKey:@"appleEventId"];
EKEvent *currentEvent = [self.eventStore eventWithIdentifier:[item valueForKey:@"appleEventId"]];
if (currentEvent){
NSLog(@"LOG101: found an event with %@",appleEventId );
[self createEvent:currentEvent inEventStore:self.eventStore forActivity:item];
}
else{
NSLog(@"LOG101: COULD NOT FIND an event with %@",appleEventId );
EKEvent *event = [EKEvent eventWithEventStore:self.eventStore];
[self createEvent:event inEventStore:self.eventStore forActivity:item];
}
completionHandler(YES);
});
}
else{
dispatch_sync(dispatch_get_main_queue(), ^{
completionHandler(NO);
});
}
}];

(创建事件做了一堆客户逻辑,但最终调用以下创建事件)

  [eventStore saveEvent:event span:EKSpanThisEvent error:&err];

这令人沮丧,因为该代码适用于除交换以外的所有其他内容。任何提示/建议都会很棒。谢谢

最佳答案

我已经为类似的问题纠结了两天!

eventIdentifier 的文档指出:

“如果事件的日历发生变化,其标识符很可能也会发生变化。” https://developer.apple.com/reference/eventkit/ekevent/1507437-eventidentifier?language=objc

还有 calendarIdentifier 的文档指出:

“与日历完全同步将丢失此标识符。您应该有一个计划来处理一个日历,该日历的标识符不再可通过缓存其其他属性来获取。” https://developer.apple.com/reference/eventkit/ekcalendar/1507380-calendaridentifier?language=objc

我认为可以肯定地说,如果日历已同步,您不能依赖于在本地保存日历或事件标识符供以后使用:-(

关于同步到 Exchange 帐户时,iOS 无法更新日历事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36263740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com