我的代码如下:
let calendars = EKEventStore().calendars(for: entityType)
for calendar in calendars {
...
createListFrom(calendar: calendar, entityType: entityType)
}
...
newList.name = calendar.title
在iOS 10中,calendar.title
是真实姓名,但在iOS 11中,它始终为nil
。
它是iOS 11错误还是我做错了什么?
我的问题在这一行
let calendars = EKEventStore().calendars(for: entityType)
但它的工作原理
let eventStore = EKEventStore()
let calendars = eventStore.calendars(for: .event)
答案 0 :(得分:0)
对于日历,请使用以下代码行。
var calenders: [EKCalendar]?
let eventStore = EKEventStore();
func fetchCalendarEvents(){
calenders = eventStore.calendars(for: .event)
for calendar in calenders!{
print(calendar.title)
}
}
答案 1 :(得分:0)
我遇到同样的问题,相同的代码在iOS 10中完美运行但在iOS 11中无法正常工作
问题来自您从对象请求的权限,并且您尝试从其他
获取信息每次需要初始化日历对象并使用此对象获取信息时,您必须请求权限
let eventStore = EKEventStore()
eventStore.requestAccess(to: .event, completion: {
(accessGranted: Bool, error: Error?) in
if accessGranted == true {
let calendars = eventStore.calendars(for: entityType)
for calendar in calendars {
...
createListFrom(calendar: calendar, entityType: entityType)
}
}
}