我运行的情况是,EKEventStore 至少列出了 EKCalendarTypeLocal 类型的本地日历,但没有显示并且无法在 iOS 上的日历应用程序中选择。
if ([eventStore respondsToSelector:@selector(calendarsForEntityType:)]) cals = [eventStore calendarsForEntityType:EKEntityTypeEvent];
else cals = eventStore.calendars;
我发现这可能与 iCloud访问 iOS 设备上以编程方式创建的日历有关。我还成功创建了一个本地日历,并且可以向其中添加事件。EKEventStore 没有列出这个创建的日历,但我得到了它的标识符:
aCal = [eventStore calendarWithIdentifier:calId];
在我删除测试设备中的 iCloud 帐户后,所有本地日历也会显示为我自己创建的。是否有可能检查本地日历是否隐藏?所以我可以写一个信息文本或隐藏它们。