导入时日历中的空标题

时间:2017-08-31 22:16:45

标签: ios swift eventkit

我的代码如下:

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)

2 个答案:

答案 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)  
                }  
            }
        }