0

通过我的应用程序添加任何事件时,我遇到了关于 EKEventEditViewController 的问题。当我第一次安装该应用程序时,我无法添加事件,并且没有设置日历事件的问题带有“错误域 = EKErrorDomain Code = 1”。它只会在第一次使用不同的捆绑标识符打开应用程序时出现。当我下次安装该应用程序并且我可以添加事件时,它将完美运行。在添加事件之前,我还检查了 requestAccessToEntityType:completion: 的条件。我被困在这一点上,并尝试了通过谷歌搜索找到的所有方法。

-提前致谢。

4

1 回答 1

0

当应用程序第一次请求权限时,提示不会阻止应用程序,添加事件的正确方法是在完成块内

这是一个例子:

EKEventStore *eventStore = [[EKEventStore alloc] init];
[eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
    dispatch_async(dispatch_get_main_queue(), ^{
        // Event creation code HERE!!! (for the first run only) this block will not be executed for the next runs
    });
}];

您的事件创建代码很可能在requestAccessToEntityType函数之后,而不是在完成块内。

您不能第一次创建事件,因为只有在执行完成块时才允许访问。

一旦您授予下一次运行的访问权限,就允许访问,并且一切都按预期工作。

于 2013-11-07T12:10:48.623 回答