我有应用程序,我必须在默认日历中添加事件,直到iOS 10正常。现在在iOS 10中它不授予访问权限。我已将use legacy swift language version
设置为yes
。我的代码是
let eventStore = EKEventStore()
switch EKEventStore.authorizationStatusForEntityType(EKEntityType.Event) {
case .Authorized:
//access
case .Denied:
print("Access denied")
case .NotDetermined:
eventStore.requestAccessToEntityType(EKEntityType.Event, completion:
{[weak self] (granted: Bool, error: NSError?) -> Void in
if granted {
//access
} else {
print("Access denied")
}
})
default:
print("Case Default")
}
调试我的应用程序时在Xcode 8中的eventStore.requestAccessToEntityType
崩溃。
我的应用程序已上线,我需要解决它。任何帮助都是适当的。提前谢谢。
答案 0 :(得分:7)
在iOS 10版本中,您需要为Info.plist上的权限警报设置描述消息
重要提示:iOS 10.0上或之后链接的iOS应用必须包含在其中 Info.plist文件用于数据类型的用法描述键 需要访问或它将崩溃。访问提醒和日历 具体来说,它必须包含NSRemindersUsageDescription和 NSCalendarsUsageDescription,分别为。
答案 1 :(得分:1)
let eventStore = EKEventStore()
switch EKEventStore.authorizationStatus(for: .event) {
case .authorized: break
//access
case .denied:
print("Access denied")
case .notDetermined:
eventStore.requestAccess(to: .event, completion:
{[weak self] (granted: Bool, error: Error?) -> Void in
if granted {
//access
} else {
print("Access denied")
}
})
default:
print("Case Default")
}
使用XCode 8和swift 3,这是新格式。您是否在iOS 10上测试了应用程序。