iOS 9 Beta 5-日历隐私访问警报未在iPhone上显示,但在模拟器上显示
在新的iOS9Beta5和WatchOS2固件中,我遇到了一些非常奇怪的事情 我正在尝试使用这段代码,如果用户还没有授予访问权限,它应该会发出一个警报,请求获得访问日历的权限。问题是,即使用户尚未授予日历访问权限,警报也不会出现:iOS 9 Beta 5-日历隐私访问警报未在iPhone上显示,但在模拟器上显示,ios,objective-c,iphone,calendar,watchkit,Ios,Objective C,Iphone,Calendar,Watchkit,在新的iOS9Beta5和WatchOS2固件中,我遇到了一些非常奇怪的事情 我正在尝试使用这段代码,如果用户还没有授予访问权限,它应该会发出一个警报,请求获得访问日历的权限。问题是,即使用户尚未授予日历访问权限,警报也不会出现: if ([store respondsToSelector:@selector(requestAccessToEntityType:completion:)]) { NSLog(@"Monkey"); [store requestAccessToEnt
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上运行watchkit应用程序,同样的思路也会起作用。尽管我已为授予了if-else语句
,但该语句不会执行,因为{
不会执行。这意味着日志不会显示香蕉
,只显示猴子
。在我自己的设备上测试时会发生这种情况。在模拟器上,两者都会显示,访问日历警报也会出现
还要注意的是,当iOS 9 Beta 3发布时,同样的代码在我自己的设备和模拟器上运行得非常好。大约一周前,当我将手机升级到iOS 9 Beta 5时,我遇到了这个问题,所以我有理由相信这可能是某种错误。我解决了我的问题。显然,我忘了在我的apple w上进行软件更新atch.更新手表会显示隐私警报,现在我可以抓取手表上的日历事件。我的手表不会显示在模拟器和设备中。我的项目已转换为Xcode 7。我没有使用Apple watch。你知道这是为什么吗?