Я знаю, что название этого вопроса относится к iOS5, но у меня было приложение, работающее на iOS5 и выше.Мои пользователи iOS6 сталкивались с этой проблемой по разным причинам - вам нужно использовать новый метод iOS6, если он доступен, чтобы сначала получить доступ к хранилищу событий.
- (void)requestAccessToEntityType:(EKEntityType)entityType completion:(EKEventStoreRequestAccessCompletionHandler)completion
Обязательно сначала проверьте доступность API,например,
EKEventStore* eventStore = [[EKEventStore alloc] init];
if([eventStore respondsToSelector:@selector(requestAccessToEntityType:completion:)]) {
// >= iOS 6
[eventStore requestAccessToEntityType:EKEntityTypeEvent
completion:^(BOOL granted, NSError *error) {
// may return on background thread
dispatch_async(dispatch_get_main_queue(), ^{
if (granted) {
// continue
} else {
// display error
}
});
}];
} else {
// < iOS 6
// continue
}