iOS 9 Beta 5 - 日历隐私访问警报未显示在 iPhone 上,但显示在模拟器上

iOS 9 Beta 5- Calendar Privacy Access Alert not showing up on iPhone but is showing up on simulator

使用新的 iOS 9 Beta 5 和 watch os 2 固件,我遇到了一些非常奇怪的事情。

我正在尝试使用此代码,支持osed 在用户尚未获得访问权限的情况下发出警报,请求访问日历的权限.问题是即使用户没有授予对日历的访问权限,警报也永远不会出现:

if ([store respondsToSelector:@selector(requestAccessToEntityType:completion:)])
{
    NSLog(@"Monkey");
    [store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error)
    {
         NSLog(@"Banana");
         /*
         more code here
         */
    }
}

在代码中添加断点后,我推断出这一行是问题所在:

[store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {

此行之后的任何内容都不会执行,因此永远不会显示警报。但是,如果我 运行 模拟器上的 watchkit 应用程序而不是我自己的手表和 iPhone,则同一行有效。尽管我有 granted 的 if-else 语句,但该语句不会执行,因为 { 之后的任何内容都不会执行。这意味着日志不会显示 Banana,只会显示 Monkey。在我自己的设备上测试时会发生这种情况。在模拟器上两者都会显示,并且还会出现对日历警报的访问。

另请注意,当 iOS 9 Beta 3 发布时,同样的代码 运行 在我自己的设备和模拟器上完全没问题。大约一周前,当我将 phone 更新到 iOS 9 Beta 5 时,我遇到了这个问题,所以我有理由相信它可能是某种错误。

我解决了我的问题。显然我忘了在我的 Apple Watch 上进行软件更新。更新手表会显示隐私警报,现在我可以在手表上获取日历事件。