使用EventKit创建提醒时出错

时间:2015-04-12 06:29:16

标签: ios eventkit

我有一个使用EventKit的应用。我要求获得提醒的许可,然后我有代码创建提醒。在模拟器中运行应用程序时,我有时会在日志中收到此错误消息:

Error getting changed object IDs since timestamp 450512391.766620 from daemon: Error Domain=EKCADErrorDomain Code=1013 "The operation couldn’t be completed. (EKCADErrorDomain error 1013.)" Error getting default calendar for new reminders: Error Domain=EKCADErrorDomain Code=1013 "The operation couldn’t be completed. (EKCADErrorDomain error 1013.)"

第一个错误来自授权步骤,第二个错误来自这些行:

EKReminder *reminder = [EKReminder reminderWithEventStore:eventStore]; reminder.calendar = eventStore.defaultCalendarForNewReminders;

requestAccessToEntityType:completion:返回授予提醒权限后会发生这种情况,因此肯定有权限。

奇怪的是,一旦问题发生,如果我只是重启应用程序一切都很好。如果我重置模拟器并重新运行应用程序,有时只会再次发生。

1 个答案:

答案 0 :(得分:4)

这似乎只发生在以下工作流程中:

  • 重置所有联系人和设置菜单选项。
  • 当它重新启动时立即退出模拟器。
  • 运行您的应用程序,该应用程序会立即询问刚刚重置,从未打开过的模拟器上的日历信息。

我怀疑原因是因为当您重置整个模拟器时,它需要几秒钟来初始化所有演示数据,例如首次“启动”时的联系人和日历事件。

如果您在重置后等待10秒以上,那么运行您的应用程序,您就不会收到此警告。

另一种解决方法是在测试日历权限测试期间使用iOS模拟器设置应用程序中的“重置隐私设置”(常规>重置)。