首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EKEventKit -如何在批提交之后检索eventIdentifier?

EKEventKit -如何在批提交之后检索eventIdentifier?
EN

Stack Overflow用户
提问于 2015-10-23 13:26:03
回答 1查看 261关注 0票数 2

在保存了大量ekEvents之后,我正在进行批提交。我需要为每个eventIdentifier检索EKEvent。但在承诺之后就没表现出来了。我知道用

代码语言:javascript
复制
commit:NO 

不会产生eventIdentifier。但是,在发出提交之后,eventIdentifier肯定会被填满。

基本上,我的应用程序必须从web服务中检索大量Calendar事件数据,并将其保存在设备上。不幸的是,抛出的数据量最多可达1000个事件。

一开始我用的是:

代码语言:javascript
复制
[self.ekEventStore saveEvent:ekEvent span:EKSpanFutureEvents commit:YES error:&error];

但是,向设备抛出的数据量会导致EKEventStore在偶尔重启设备时失败。

最后,我意识到这与我在EventStore上抛出的提交量有关,并决定将提交设置为否

代码语言:javascript
复制
[self.ekEventStore saveEvent:ekEvent span:EKSpanFutureEvents commit:NO error:&error];

在循环结束时,调用:

代码语言:javascript
复制
[self.ekEventStore commit:&error];

但是,eventIdentifier的问题出现了。即使在循环结束时执行提交,每个事件都为eventIdentifier提供了一个零值。当我每次在eventStore上保存数据时,这种情况从未发生过。我做错了什么吗?我认为在提交之后,事件将为每个实例注册eventIdentifier。但事实并非如此。

而且,这个问题在here上似乎也很普遍。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-10 06:00:03

我终于解决了这个问题。

基本上,我需要做的是做所有的事情在里面:

代码语言:javascript
复制
- (void)requestAccessToEntityType:(EKEntityType)entityType
                   completion:(EKEventStoreRequestAccessCompletionHandler)completion

方法。

当我什么都说的时候,我的意思是当你在EventStore上做一个提取、保存、编辑、编辑甚至逗号的时候,在完成块中这样做。如果已授予的完成块的返回值设置为“是”。

给出背景。我对requestAccess方法所做的只是请求访问,并相应地处理所给出的结果,不管它是否被授予。然后我在方法之外做我的事情。

对我起作用了。如果有人有不同的解决方案。请把它张贴在这里,为了我和其他任何人,谁还没有解决这个问题。谢谢。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33303497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档