2017-09-14 7 views
1

Ce code fonctionnait bien avant ios 11, mais maintenant, dans ios 11, l'ID fonctionne correctement, mais le titre renvoie null.Le titre EKCalendar renvoie null ios 11

NSArray *availablePersonalCalendars = [eventStore calendarsForEntityType:EKEntityTypeEvent]; 

for (EKCalendar *cal in availablePersonalCalendars) { 

    NSLog(@"ID: %@", cal.calendarIdentifier); 
    NSLog(@"Title: %@", cal.title) 
} 

S'il vous plaît aidez-moi si vous savez comment résoudre ce problème. Merci,

Répondre

2

J'ai utilisé ce code et fonctionne correctement dans iOS 11:

EKEventStore *store = [[EKEventStore alloc] init]; 
[store requestAccessToEntityType:EKEntityTypeEvent 
         completion:^(BOOL granted, NSError * _Nullable error) { 
     NSArray *availablePersonalCalendars = [store calendarsForEntityType:EKEntityTypeEvent]; 

     for (EKCalendar *cal in availablePersonalCalendars) { 

      NSLog(@"ID: %@", cal.calendarIdentifier); 
      NSLog(@"Title: %@", cal.title); 
     } 
    }]; 

Veuillez également inclure dans la plist la clé NSCalendarsUsageDescription, avec un texte explicatif de la façon dont va être utilisé cette information.

https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW15

+3

Bonne et complète réponse. Pour mon cas, mon problème a été résolu en définissant le magasin EKEventStore * comme une variable de classe au lieu d'une variable locale. – Mona