我有一个使用 EventKit 的应用程序。我请求提醒的许可,然后我有创建提醒的代码。在模拟器中运行应用程序时,我有时会在日志中收到此错误消息:
从守护程序获取自时间戳 450512391.766620 以来更改的对象 ID 时出错:错误域=EKCADErrorDomain 代码=1013“操作无法完成。(EKCADErrorDomain 错误 1013。)”
获取新提醒的默认日历时出错:错误域=EKCADErrorDomain代码=1013“操作无法完成。(EKCADErrorDomain错误1013。)”
第一个错误来自授权步骤,第二个错误来自以下几行:
EKReminder *reminder = [EKReminder notificationWithEventStore:eventStore];
提醒.日历 = eventStore.defaultCalendarForNewReminders;
这发生在 requestAccessToEntityType:completion:
返回授予的提醒权限之后,因此肯定有权限。
奇怪的是,一旦出现问题,如果我重新启动应用程序,一切都会很好。如果我重置模拟器并重新运行应用程序,这种情况有时会再次发生。
最佳答案
这似乎只发生在以下工作流程中:
- 重置所有联系人和设置菜单选项。
- 模拟器恢复后立即退出。
- 运行您的应用,该应用会立即在刚刚重置且之前从未打开过的模拟器上请求日历信息。
我怀疑原因是因为当您重置整个模拟器时,第一次“启动”时需要几秒钟来初始化所有演示数据,例如联系人和日历事件。
如果您在重置后等待 10 秒以上,然后运行您的应用,则不会收到此警告。
另一个解决方法是在日历权限测试期间使用 iOS 模拟器设置应用程序中的“重置隐私设置”(常规 > 重置)。
关于ios - 使用 EventKit 创建提醒时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29586675/