我刚刚运行了以下代码(在我的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上使用日历时,它列出了每个日历的计数,但我无法检索旧的对象。
答案 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])
}