如何从EKEventStore

时间:2018-03-16 17:48:45

标签: ios swift eventkit ekeventstore

我刚刚运行了以下代码(在我的iPhone上):

  let predicate = eventStore.predicateForEvents(withStart: Date(timeIntervalSinceNow: -60*60*24*365*4), end: Date(timeIntervalSinceNow: 60*60*24*30), calendars: [calendar])

结果显示此请求只能追溯到3年:

  

最早开始发现日期:2015-04-11 12:00:00 +0000

有没有办法检索三年以上的日历活动?我想找回我的旧课堂笔记。当我在mac上使用日历时,它列出了每个日历的计数,但我无法检索旧的对象。

1 个答案:

答案 0 :(得分:1)

** 更新回答 **

我进一步研究了这一点,发现following from Apple解释了为什么OP遇到这个问题:

  

出于性能原因,此方法仅匹配其中的事件   四年的时间跨度。如果startDate和endDate之间的日期范围   超过四年,它缩短到前四年。

话虽如此,您可以使用以下代码创建四年增量作为示例:

if let fourYearsAgo = Calendar.current.date(byAdding: .year, value: -4, to: Date()) {
    let predicate = eventStore.predicateForEvents(withStart: fourYearsAgo,
                                                  end: Date(),
                                                  calendars: [calendar])
}