2015-04-12 66 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設置應用程序中的「重置隱私設置」(常規>重置)。