- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在保存大量 ekEvents 后进行批量提交。我需要为每个 EKEvent 检索 eventIdentifier。但它在提交后没有显示。我知道用
保存它commit:NO
不会产生 eventIdentifier。但肯定在发出提交后,应该填写 eventIdentifier。
基本上,我的应用程序必须从网络服务中检索一堆日历事件数据并将其保存在设备上。不幸的是,抛出的数据量最多可达 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 的问题。即使在循环结束时执行提交之后,每个事件都为我提供了 eventIdentifier 的 nil 值。当我每次保存在 eventStore 上时,这从未发生过。难道我做错了什么?我认为在提交之后,事件会为每个实例注册 eventIdentifier。但事实并非如此。
这个问题似乎也普遍存在于 here 的这个家伙身上
谢谢
最佳答案
我终于弄清楚了这个问题。
基本上我需要做的是在以下地方做所有事情:
- (void)requestAccessToEntityType:(EKEntityType)entityType
completion:(EKEventStoreRequestAccessCompletionHandler)completion
方法。
当我说完所有内容时,我的意思是当您对 EventStore 进行获取、保存、编辑、编辑甚至提交时,请在完成 block 内进行。前提是完成 block 的返回值,granted设置为YES。
提供上下文。我对 requestAccess 方法所做的只是请求访问并根据给出的结果采取相应的行动,无论是否被授予。然后我在方法之外做我的事情。
它对我有用。如果有人有不同的解决方案。为了我和其他尚未解决此问题的人,请将其张贴在这里。谢谢。
关于ios - EKEventKit - 如何在批量提交后检索 eventIdentifier?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33303497/
我正在使用 EventKit 在日历中存储事件。 现在我正在使用 [event setCalendar:self.defaultCalendar]; 在哪里, self.defaultCalendar
我正在使用 EKEventKit 将事件添加到日历。只有今天的事件会存储在设备上,但不会存储过去的事件。但它是在模拟器上添加的。 以下是我的代码: func createEvent(event
我在保存大量 ekEvents 后进行批量提交。我需要为每个 EKEvent 检索 eventIdentifier。但它在提交后没有显示。我知道用 保存它 commit:NO 不会产生 eventId
我是一名优秀的程序员,十分优秀!