访问"在邮件中发现的事件"日历

时间:2015-10-16 08:11:35

标签: ios objective-c iphone swift eventkit

我尝试使用iOS 9中的新主动助理功能访问通过电子邮件自动创建的事件。事件显示在"在Mail中找到的事件"日历。

要访问这些,我正在执行以下操作

self.eventStore.requestAccessToEntityType(.Event, completion: { (granted, error) -> Void in

    let predicate = eventStore.predicateForEventsWithStartDate(NSDate(timeIntervalSince1970: timestamp1), endDate: NSDate(timeIntervalSince1970: timestamp2), calendars: nil)
    let events = eventStore.eventsMatchingPredicate(predicate)

}

但是,未列出此日历中的事件。这是Apple的限制还是我可以通过其他任何方式访问它们?

enter image description here

2 个答案:

答案 0 :(得分:2)

我能够向苹果工程师提出这个问题,他们的答案是,出于隐私原因,他们不会公开这个日历。他们希望用户将从邮件解析的事件添加到他们的正常日历之一,以确认他们希望将其公开给其他应用程序,这就是为什么这个日历在平常时不可见

 let calendars = store.calendarsForEntityType(EKEntityTypeEvent)

答案 1 :(得分:0)

我不确定这是否是Apple的限制,但一般来说,如果您知道日历的名称,您可以像这样访问它:)

func yourFunc(store: EKEventStore) {

    let calendars = store.calendarsForEntityType(EKEntityTypeEvent)
        as! [EKCalendar]

    for calendar in calendars {

        if calendar.title == "Events Found in Mail" {
       //Do something!}}}

沿着这些方向尝试一下!