2017-09-14 70 views
1

此代碼在ios 11之前一直工作正常,但現在在ios 11中ID工作正常,但標題返回null。EKCalendar標題返回null ios 11

NSArray *availablePersonalCalendars = [eventStore calendarsForEntityType:EKEntityTypeEvent]; 

for (EKCalendar *cal in availablePersonalCalendars) { 

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

請幫助我,如果你知道如何解決這個問題。 謝謝,

回答

2

我已經使用這個代碼,並在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); 
     } 
    }]; 

而且一定要在plist中包含的NSCalendarsUsageDescription關鍵,隨着又是怎麼回事的說明性文字使用這個信息。

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

+3

好,完整的答案。對於我的情況,事實證明我的問題是通過將EKEventStore *存儲定義爲類變量而不是局部變量來解決的。 – Mona