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

Vis*_*yer 9 iphone calendar objective-c ios watchkit

使用新的iOS 9 Beta 5并观看os 2固件,我遇到了一些非常奇怪的事情.

我正在尝试使用此代码,如果用户尚未授予访问权限,则应该提出要求访问日历的权限的警报.问题是即使用户没有访问日历,警报也不会出现:

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

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

[store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
Run Code Online (Sandbox Code Playgroud)

此行之后的任何内容都将永远不会执行,因此警报永远不会显示.但是,如果我在模拟器上运行watchkit App而不是我自己的手表和iPhone,那么同样的线路也可以工作.虽然我有一个if-else语句granted,但该语句不会执行,因为任何事后{都不会执行.Banana仅表示日志不会显示Monkey.在我自己的设备上测试时会发生这种情况.在模拟器上,两者都将显示,并且还将显示对日历警报的访问.

另外需要注意的是,当iOS 9 Beta 3发布时,同样的代码在我自己的设备和模拟器上运行得非常好.大约一周前,当我将手机更新到iOS 9 Beta 5时,我遇到了这个问题,所以我有理由相信它可能是某种类型的错误.

Vis*_*yer 0

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