objective-c - Eventkit 无法访问日历

标签 objective-c ios permissions calendar eventkit

我无法使用 Eventkit 访问我设备的日历。我正在使用 EKEventEditViewController 来呈现用于添加日历条目的 View 。

EKEventStore *eventStore = [[EKEventStore alloc] init];
EKEventEditViewController *eventController = [[EKEventEditViewController alloc]init]; 
eventController.eventStore = eventStore;
eventController.editViewDelegate = self;

...

[self presentViewController:eventController animated:YES completion:nil];

这个在模拟器上工作正常但我得到以下 在手机上运行时出现错误消息 (iOS6):“此应用无权访问您的日历”

This app does not have access to your calendars

按照建议检查隐私设置根本不会显示我的应用程序的任何条目。

如何解决这个问题并授予访问权限?

最佳答案

您可以请求访问

EKEventStore *store = [[EKEventStore alloc] init];    
if([store respondsToSelector:@selector(requestAccessToEntityType:completion:)]) {
    [store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
        /* This code will run when uses has made his/her choice */
    }];
}

您还可以向 plist (NSCalendarsUsageDescription) 添加一个 key ,该 key 将在请求所述访问权限时显示一个字符串。

关于objective-c - Eventkit 无法访问日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13298590/

相关文章:

ios - 我在 drawInContext 中的 NSLog 永远不会停止

ios - 使用 UIAttachmentBehavior 拖动 View

iOS - 使用文件的基本名称并附加扩展名

ios - UIViewController 中的 UISearchBar

ios - NSURLRequestReloadIgnoringLocalAndRemoteCacheData 在 iOS 7 中工作吗?

php - 授予执行 .c 文件的权限

permissions - 无法在 sysfs 中将属性权限设置为 0666

php - 如何允许 PHP 在不损害服务器安全的情况下写入文件

ios - MultipeerConnectivity 在连接之前传递缩略图

ios - 最佳方法 : Swipe between scrollable views or view controllers