在日历中发现新的未记录的EKCalendarType

时间:2018-09-19 08:37:37

标签: eventkit xcode10 ios12

在具有iOS 12 SDK的Xcode 10中,当我从EventKit中检索所有事件日历时,似乎有一种新型的日历,其中EKCalendarType rawValue为 5 。这可以在模拟器和设备上复制。

知道这是什么吗?是否可以在枚举案例中使用私有API,从而绕过穷举检查?

let calendars = store.calendars(for: .event)
calendars.forEach { (calendar) in
    print(calendar.title) // => Found in Mail
    print(calendar.type.rawValue) // => 5
}

1 个答案:

答案 0 :(得分:0)

这是一个不好的错误。如果您的代码打开了calendar.type并且rawValue为5,则应用程序将崩溃,因为它无法使用该值初始化大小写。当我在模拟器中运行该日历时,相关日历具有calendar.source.sourceType = .birthdays

总结一下,有一个新的系统生成的日历:"Found in Mail" sourceType: .birthdays, calendar.type.rawValue: 5