【问题标题】:EKEvent for iOS 6 not working in any way possibleiOS 6 的 EKEvent 无法以任何方式工作
【发布时间】:2012-12-12 14:40:06
【问题描述】:

我已尝试向

请求许可
if([eventStore respondsToSelector:@selector(requestAccessToEntityType:completion:)]) {
// iOS 6 and later
   eventStorerequestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {

}];}

但是弹出窗口没有出现。我尝试了许多示例,尝试了许多项目,但没有一个适用于 iOS 6。这些应用程序没有显示在隐私>日历>中。我想我要疯了。有人可以向我展示一段适用于 iOS 6 的代码,其中会显示弹出窗口请求许可,并在授予许可后将事件导出到日历应用程序。谢谢!

【问题讨论】:

  • 你在为 iOS5 和 iOS6 构建吗?
  • 我猜只是 iOS 6。真的有关系吗?我想如果我要在 iOS 5 上测试它会工作,但我目前只在 iOS 6 上测试它。
  • 好吧,如果你只打算为 iOS6 构建,那么你不需要检查它是否响应选择器,这样你就可以把它排除在等式之外。

标签: objective-c ios6 ekevent ekeventkit ekeventstore


【解决方案1】:

只需致电EKEventStore。如果你这样做,它会自动请求许可。

如果它没有尝试转到您的 iPhone 设置:常规 > 重置 > 重置位置和隐私 之后再试一次!

【讨论】:

    【解决方案2】:

    首先:我认为你有一个错字(可能只在 stackoverflow 上)。正确的代码是:

    [eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error){ }];
    

    第二:你在设备上试用吗? 6.0 模拟器没有日历应用程序(但有日历支持),并且由于某种原因,它不请求许可(它总是返回被授予的访问权限)

    【讨论】:

    • 模拟器有日历!它唯一没有的是日历APP。但是你当然可以使用 EventKit 创建和阅读日历和事件
    • 是的。它没有日历应用程序,我更正了我的答案。这段代码在模拟器上工作,因为它总是被授予,它不要求许可。我找不到任何官方参考,可能是一个错误?
    • 确实我正在模拟器上进行测试。但是我不应该在设置>隐私>日历中找到我的应用程序吗?
    • 不确定...在真机上试试吧。
    • 我找不到有关它的文档。我只能根据我的经验回答:NO。在模拟器中始终授予访问权限,您看不到隐私日历中的设置
    猜你喜欢
    • 1970-01-01
    • 2023-02-16
    • 2023-04-03
    • 2013-01-01
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多