我正在尝试从我的应用程序中将事件保存到日历中。 我的代码适用于iOS 7,但在 iOS 6 上,它会返回没有设置日历。
应用程序提示用户在iOS 7上授予对日历的访问权限。 但是iOS 6没有出现这样的提示。虽然应用程序在 Settings->中被授予访问权限。隐私 - >日历。
是的,我已经实施了requestAccessToEntityType:completion:
。
这是我的代码段。
EKEventStore *objStore = [[EKEventStore alloc]init];
if ([objStore respondsToSelector:@selector(requestAccessToEntityType:completion:)])
{
// iOS 6 and later
[objStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error)
{
dispatch_async(dispatch_get_main_queue(), ^{
if (granted)
{
// code here for when the user allows your app to access the calendar
EKEvent *calEvent = [EKEvent eventWithEventStore:objStore];
calEvent.title = mstrTitleEvent;
calEvent.startDate = self.dateToBeSet;
calEvent.endDate = self.dateToBeSet;
calEvent.calendar = objStore.defaultCalendarForNewEvents;
EKAlarm *objAlarm = [EKAlarm alarmWithAbsoluteDate:self.dateToBeSet];
[calEvent addAlarm:objAlarm];
NSError *error;
BOOL _bStatus = [objStore saveEvent:calEvent span:EKSpanThisEvent commit:YES error:&error];
UIAlertView *alertV;
if(_bStatus)
{
alertV = [[UIAlertView alloc]initWithTitle:@"Congratulations" message:@"Saved To Calendar" delegate:nil cancelButtonTitle:@"Right On!" otherButtonTitles:nil];
[alertV show];
}
else
{
alertV = [[UIAlertView alloc]initWithTitle:@"Alert" message:[NSString stringWithFormat:@"Error saving to calendar, with error %@.",[error localizedDescription]] delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
[alertV show];
}
}
else
{
// code here for when the user does NOT allow your app to access the calendar
UIAlertView *alertV = [[UIAlertView alloc]initWithTitle:@"Alert" message:@"Please grant access to the calendar, and try again later." delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alertV show];
}
});
}];
}
答案 0 :(得分:0)
只是设法以某种方式找到我的问题的解决方案。 我不得不从一个页面导航到另一个页面,所以将链接发布到两个页面。
首先 - > https://discussions.apple.com/message/16497282#16497282
然后,从那里到 - > https://discussions.apple.com/message/16479587#16479587
我必须进入设置> iCloud> 并启用 Calendars 。 之后,我尝试尝试并运行我的代码,它再次正常运行。
如果你遇到类似的问题,请尝试这样做。
我在iPad 2上工作,并在设备上安装了iOS 6.1.3。
答案 1 :(得分:0)
很棒我在两个不同的设备上测试我的代码,一个工作正常,另一个不能工作。只是查看设置,其中一个没有工作有iCloud日历和提醒关闭,只需打开它们现在一切正常...这必须是一个错误