Ios 如何从EKEventStore检索3年前的事件

Ios 如何从EKEventStore检索3年前的事件,ios,swift,eventkit,ekeventstore,Ios,Swift,Eventkit,Ekeventstore,我刚刚(在我的iPhone上)运行了以下代码: 结果表明,这一请求仅可追溯到3年前: 发现的最早开始日期:2015-04-11 12:00:00+0000 有没有办法检索三年以上的日历事件?我想找回我以前的课堂笔记。当我在mac电脑上使用日历时,它会列出每个日历的计数,但我无法检索较旧的对象。***更新的答案** 我对此进行了更深入的研究,并找到了解释OP出现此问题的原因: 出于性能原因,此方法仅匹配 四年的时间跨度。如果日期介于startDate和endDate之间 大于四年,则缩短为前四年

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

结果表明,这一请求仅可追溯到3年前:

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


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

***更新的答案**

我对此进行了更深入的研究,并找到了解释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])
}

谢谢当我缩小谓词的事件时间跨度时,我的事件也在变老。“我想我会继续用不同的方法,直到我对我所期望的大部分/所有数据感到满意为止。”Mozahler更新了苹果公司的信息,解释了为什么会发生这种情况。但我只得到了3个,而不是要求的4个。允许我的查询跨越4年零1个月。无论如何,谢谢你的努力。我很高兴你抽出时间给我回电话。
if let fourYearsAgo = Calendar.current.date(byAdding: .year, value: -4, to: Date()) {
    let predicate = eventStore.predicateForEvents(withStart: fourYearsAgo,
                                                  end: Date(),
                                                  calendars: [calendar])
}