没有设置日历事件问题

时间:2013-06-06 07:28:57

标签: iphone ios calendar ekevent ekeventstore

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

- 提前谢谢。

1 个答案:

答案 0 :(得分: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 函数之后,而不是在完成块之内。

您无法首次创建事件,因为只有在执行完成块时才允许访问。

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