.calendarsForEntityType(EKEntityType.Reminder)未返回提醒列表列表

时间:2015-10-18 02:12:14

标签: ios swift reminders ekeventstore

帮助, 试图从EventKit获取提醒列表的列表。 这只是没有返回任何东西。如果我将EKEntityType.Reminder更改为.Event,我会收到日历(事件),所以我知道代码通常很好。

思想

var eventStore = EKEventStore()

func get_calendars(completed: (([EKCalendar])->())) {
   print("in Get_Calendars")

   let calendars = eventStore.calendarsForEntityType(EKEntityType.Reminder)

    for calendar in calendars as [EKCalendar] {
        // 2
        print(calendar.title)
        print(calendar.calendarIdentifier) 
    }
}

1 个答案:

答案 0 :(得分:1)

两个想法。

  1. 确保您已请求访问提醒:

    let eventStore = EKEventStore()
    eventStore.requestAccessToEntityType(EKEntityType.Reminder, completion: {
        granted, error in
    
        if granted {
            let calendars = eventStore.calendarsForEntityType(.Reminder)
    
            for calendar in calendars as [EKCalendar] {
                print(calendar.title)
                print(calendar.calendarIdentifier)
            }
        }
        else {
            print("Permission denied by user")
        }
    })
    
  2. 确保您至少有一个提醒。如果您在模拟器中运行,则可能没有任何提醒,并且您将看不到日历。至少,这是我在测试时看到的。