我刚刚遇到了一个我认为我会分享的问题。在我的 iOS 日历使用中,我在应用程序委托中使用 applicationDidBecomeActive 来检查用户日历设置是否已更改。具体来说,在获得 applicationDidBecomeActive 回调后,我执行以下操作:
// self.eventStore is of type EKEventStore *
EKCalendar *cal = [self.eventStore calendarWithIdentifier: calendarIdentifier];
if (!cal) {
// Assume we no longer have access to the users calendar; e.g., they have change their privacy settings.
}
但是,我遇到了一个问题。(多么令人惊讶!:))。我发现当我们最初执行 requestAccessToEntityType 时也会调用 applicationDidBecomeActive。也就是说,在 Apple 向用户显示他们的“警报”以询问用户是否希望我们的应用访问他们的日历之后,我们的应用会收到一个 applicationDidBecomeActive 回调。我现在唯一剩下的问题是:
当 requestAccessToEntityType 被调用时,我们总是在requestAccessToEntityType 的完成处理程序被调用之前得到 applicationDidBecomeActive 吗?
我假设这是真的。如果在调用应用程序委托 applicationDidBecomeActive 方法之前调用了我的一个方法(在应用程序委托之外),这对我来说似乎很不寻常。