2015-04-12 67 views
2

我有一个使用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:返回授予提醒权限之后,所以肯定有权限。

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

回答

4

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

  • 重置所有联系人和设置菜单选项。
  • 立即退出模拟器。
  • 运行你的应用程序,它立即要求刚刚重置,从未打开的模拟器上的日历信息。

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

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

另一个解决方法是在测试日历权限测试过程中,使用iOS Simulator设置应用程序中的“重置隐私设置”(常规>重置)。