• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - EKEventKit - 如何在批量提交后检索 eventIdentifier?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 11:35:11 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

在保存了很多 ekEvents 后,我正在执行批量提交。我需要为每个 EKEvent 检索 eventIdentifier。但它在提交后没有显示。我知道用

保存它
commit:NO 

不会产生事件标识符。但肯定在发出提交后 eventIdentifier 应该被填满。

基本上,我的应用程序必须从 Web 服务中检索一堆日历事件数据并将其保存在设备上。不幸的是,抛出的数据量可以达到 1000 个事件。

一开始我用的是这个:

[self.ekEventStore saveEvent:ekEvent span:EKSpanFutureEvents commit:YES error:&error];

但是被抛出到设备的数据量导致 EKEventStore 因设备偶尔重启而失败。

最终我意识到这与我在 EventStore 中提交的提交数量有关,并决定将提交设置为 NO

[self.ekEventStore saveEvent:ekEvent span:EKSpanFutureEvents commit:NO error:&error];

在循环结束时调用:

[self.ekEventStore commit:&error];

但随后出现了 eventIdentifier 的问题。即使在循环结束时进行了提交,每个事件都给了我一个事件标识符的 nil 值。当我每次在 eventStore 上保存时都提交时,这种情况从未发生过。难道我做错了什么?我认为在提交之后,事件将为每个实例注册 eventIdentifier。但事实并非如此。

这个问题似乎在 here 上对这个家伙很普遍。也是。

谢谢



Best Answer-推荐答案


我终于能够找出问题所在。

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

- (void)requestAccessToEntityTypeEKEntityType)entityType
                   completionEKEventStoreRequestAccessCompletionHandler)completion

方法。

我所说的一切,是指当您对 EventStore 进行获取、保存、编辑、编辑甚至提交时,请在完成 block 内进行。前提是完成 block 的返回值,granted 设置为YES。

给出上下文。我对 requestAccess 方法所做的只是请求访问并根据给出的任何结果采取相应的行动,无论它是否被授予。然后我在方法之外做我的事情。

它对我有用。如果有人有不同的解决方案。为了我和尚未解决此问题的其他任何人,请在此处发布。谢谢。

关于ios - EKEventKit - 如何在批量提交后检索 eventIdentifier?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33303497/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap