remove plugin color change cambiar bar ios calendar eventkit

ios - plugin - Cómo corregir EKErrorDomain Code=1 "No se ha configurado ningún calendario



status bar ios ionic (4)

Si esto es en iOS 6.0 o posterior, primero tendrá que solicitar acceso a los calendarios del usuario antes de que EventKit se los entregue utilizando el método - [EKEventStore requestAccessToEntityType: completion:]

Vea el ejemplo dado en la Guía de Programación de Recordatorios y Calendario.

Quiero crear una entrada de calendario en el calendario de iPhone, he intentado con el siguiente código

EKEventStore *eventStore = [[EKEventStore alloc] init]; EKEvent *event = [EKEvent eventWithEventStore:eventStore]; event.title = self.selectedPost.postTitle; event.notes = self.selectedPost.postContent; event.startDate = self.selectedPost.startDate; event.endDate = self.selectedPost.endDate; EKCalendar *targetCalendar = nil; targetCalendar = [eventStore defaultCalendarForNewEvents]; NSLog(@"%@",targetCalendar); [event setCalendar:targetCalendar]; NSError *err; [eventStore saveEvent:event span:EKSpanThisEvent error:&err]; UIAlertView *alert = nil; NSLog(@"err %@",err); if (err) { alert = [[UIAlertView alloc] initWithTitle:@"Error" message:[err localizedDescription] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil]; } else{ alert = [[UIAlertView alloc] initWithTitle:@"Success" message:@"Added to calender" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil]; } [alert show];

pero el resultado es

2013-01-15 22:31:34.682 Project[40863:907] defaultCalendarForNewEvents failed: Error Domain=EKCADErrorDomain Code=1013 "The operation couldn’t be completed. (EKCADErrorDomain error 1013.)" 2013-01-15 22:31:34.683 Project[40863:907] (null) 2013-01-15 22:31:34.690 Project[40863:907] err Error Domain=EKErrorDomain Code=1 "No calendar has been set." UserInfo=0x1d535ba0 {NSLocalizedDescription=No calendar has been set.}

Sé que esto se debe a

[eventStore defaultCalendarForNewEvents];

devuelve nulo. He intentado [eventStore calendarWithIdentifier: event.calendarItemIdentifier]; y algún otro código, pero el mismo resultado cómo solucionarlo. Cualquier idea


Por el bien de no perder tu tiempo, solo asegúrate de que estás usando las máscaras de bits en - [EKEventStore requestAccessToEntityType: completion:]

Me gusta esto

EKEventStore *eventStore = [[EKEventStore alloc] init]; [eventStore requestAccessToEntityType:EKEntityMaskEvent completion:^(BOOL granted, NSError *error) { // ... }];


Lo arreglé asegurándome de que el título no era el mismo que el que estaba creando, por ejemplo, tengo dance varias noches, así que por una noche haría Dance y el otro con un punto al principio. .Dance .


Agrega esas líneas

if(eventStore.defaultCalendarForNewEvents==nil) *eventStore = [[EKEventStore alloc] init];

La segunda línea se ejecutará solo la primera vez cuando conceda acceso

Tu código debería verse así a continuación

EKEventStore *eventStore = [[EKEventStore alloc] init]; EKEvent *event = [EKEvent eventWithEventStore:eventStore]; event.title = self.selectedPost.postTitle; event.notes = self.selectedPost.postContent; event.startDate = self.selectedPost.startDate; event.endDate = self.selectedPost.endDate; EKCalendar *targetCalendar = nil; if(eventStore.defaultCalendarForNewEvents==nil) *eventStore = [[EKEventStore alloc] init]; targetCalendar = [eventStore defaultCalendarForNewEvents]; NSLog(@"%@",targetCalendar); [event setCalendar:targetCalendar]; NSError *err; [eventStore saveEvent:event span:EKSpanThisEvent error:&err]; UIAlertView *alert = nil; NSLog(@"err %@",err); if (err) { alert = [[UIAlertView alloc] initWithTitle:@"Error" message:[err localizedDescription] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil]; } else{ alert = [[UIAlertView alloc] initWithTitle:@"Success" message:@"Added to calender" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil]; } [alert show];

esto funciona para mí