如何从 EKEventStore 检索 3 年前的事件
How to retrieve events older than 3 years old from EKEventStore
我只是 运行 以下代码(在我的 iPhone 上):
let predicate = eventStore.predicateForEvents(withStart: Date(timeIntervalSinceNow: -60*60*24*365*4), end: Date(timeIntervalSinceNow: 60*60*24*30), calendars: [calendar])
结果显示这个请求只回溯了 3 年:
earliest start date found: 2015-04-11 12:00:00 +0000
有没有办法检索超过三年的日历事件?我想找回旧的 class 笔记。当我在 mac 上使用日历时,它会列出每个日历的计数,但我无法检索旧对象。
** 更新的答案 **
我对此进行了深入研究,发现 following from Apple 这解释了 OP 出现此问题的原因:
For performance reasons, this method matches only those events within
a four year time span. If the date range between startDate and endDate
is greater than four years, it is shortened to the first four years.
话虽如此,您可以使用以下代码作为示例创建四年增量:
if let fourYearsAgo = Calendar.current.date(byAdding: .year, value: -4, to: Date()) {
let predicate = eventStore.predicateForEvents(withStart: fourYearsAgo,
end: Date(),
calendars: [calendar])
}
我只是 运行 以下代码(在我的 iPhone 上):
let predicate = eventStore.predicateForEvents(withStart: Date(timeIntervalSinceNow: -60*60*24*365*4), end: Date(timeIntervalSinceNow: 60*60*24*30), calendars: [calendar])
结果显示这个请求只回溯了 3 年:
earliest start date found: 2015-04-11 12:00:00 +0000
有没有办法检索超过三年的日历事件?我想找回旧的 class 笔记。当我在 mac 上使用日历时,它会列出每个日历的计数,但我无法检索旧对象。
** 更新的答案 **
我对此进行了深入研究,发现 following from Apple 这解释了 OP 出现此问题的原因:
For performance reasons, this method matches only those events within a four year time span. If the date range between startDate and endDate is greater than four years, it is shortened to the first four years.
话虽如此,您可以使用以下代码作为示例创建四年增量:
if let fourYearsAgo = Calendar.current.date(byAdding: .year, value: -4, to: Date()) {
let predicate = eventStore.predicateForEvents(withStart: fourYearsAgo,
end: Date(),
calendars: [calendar])
}