我有一个使用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:
返回授予提醒权限后会发生这种情况,因此肯定有权限。
奇怪的是,一旦问题发生,如果我只是重启应用程序一切都很好。如果我重置模拟器并重新运行应用程序,有时只会再次发生。
答案 0 :(得分:4)
这似乎只发生在以下工作流程中:
我怀疑原因是因为当您重置整个模拟器时,它需要几秒钟来初始化所有演示数据,例如首次“启动”时的联系人和日历事件。
如果您在重置后等待10秒以上,那么运行您的应用程序,您就不会收到此警告。
另一种解决方法是在测试日历权限测试期间使用iOS模拟器设置应用程序中的“重置隐私设置”(常规>重置)。