2013-10-04 12 views
6
#import <EventKit/EventKit.h> 

Non riesco a creare eventi nel calendario iOS predefinito.Impossibile creare l'evento nel calendario predefinito iOS 7

EKEventStore *eventStore = [[EKEventStore alloc] init]; 
for (EKSource *source in eventStore.sources) 
{ 
    if (source.sourceType == EKSourceTypeCalDAV || source.sourceType == EKSourceTypeLocal) 
    { 
     NSLog(@"I found it"); 
     break; 
    } 
} 

A partire da qui non è stato possibile restituire alcuna fonte. Quando creo ed eseguo l'app non ci sono richieste per dare il suo accesso al calendario predefinito.

Tutto sommato ottengo un array vuoto:

[eventStore.sources count] 

Anche quando si cerca di aggiungere eventi senza creare nuovo calendario (usando

[eventStore defaultCalendarForNewEvents] 
+0

hai ottenuto l'autorizzazione per gli eventi? –

risposta

7

immagino non v'è problema di accesso EKEventStore, a controllare il permesso prova a seguire,

EKEventStore *eventStore = [[EKEventStore alloc] init]; 
if ([eventStore respondsToSelector:@selector(requestAccessToEntityType:completion:)]){  
    [eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) 
     { 
      NSLog(@"GRANTED: %c", granted); 
      for (EKSource *source in eventStore.sources) 
      { 
       if (source.sourceType == EKSourceTypeCalDAV || source.sourceType == EKSourceTypeLocal) 
       { 
        NSLog(@"I found it"); 
        break; 
       } 
      } 
     }]; 

} 

Spero che ti aiuta ..

+1

Non dovresti controllare la versione del sistema, ma wether o no il metodo è disponibile: 'if ([eventStore respondsToSelector: @selector (requestAccessToEntityType: completion:)]) {' – rckoenes

+0

@rckoenes: hai ragione, grazie, ho aggiornato la risposta. –

2

ho trovato problema:

[eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) { 
    // TODO 
}]; 

devo chiedere il permesso manualmente, pensò set di autorizzazioni senza di essa, penso che aveva fissato in iOS 7.0.2 build.

Problemi correlati