let eventStore = EKEventStore()
// 2
switch EKEventStore.authorizationStatusForEntityType(EKEntityType.Event) {
case .Authorized:
insertEvent(eventStore)
case .Denied:
print("Access denied")
case .NotDetermined:
// 3
eventStore.requestAccessToEntityType(EKEntityType.Event, completion:
{[weak self] (granted: Bool, error: NSError!) -> Void in
if granted {
self!.insertEvent(eventStore)
}
else
{
print("Access denied")
}
})
default:
print("Case Default")
}
I am getting error: cannot convert value of type '(bool,nserror!) -->void' to expected argument type 'ekeventstorerequestaccescompletionhandler'
at this line:
eventStore.requestAccessToEntityType(EKEntityType.Event, completion:
{[weak self] (granted: Bool, error: NSError!) -> Void in
Try to remove [weak self], in my case this one works:
eventStore.requestAccessToEntityType(EKEntityType.Event, completion: {
(accessGranted: Bool, error: NSError?) in
if accessGranted && (error == nil) {
dispatch_async(dispatch_get_main_queue(), { completion(true) })
} else {
dispatch_async(dispatch_get_main_queue(), { completion(false) })
}
})