2017-09-14 69 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