【发布时间】:2021-08-26 13:53:02
【问题描述】:
我需要在 iOS 设备日历中搜索在事件注释中包含给定文本的日历事件。 Apple 描述了日期过滤器的此过程,其中过滤器条件在 NSPredicate 实例中定义 - 如下例所示(来自 https://developer.apple.com/documentation/eventkit/retrieving_events_and_reminders#overview)以及我可以找到的许多其他示例。
var predicate: NSPredicate? = nil
if let anAgo = oneDayAgo, let aNow = oneYearFromNow {
predicate = store.predicateForEvents(withStart: anAgo, end: aNow, calendars: nil)
}
var events: [EKEvent]? = nil
if let aPredicate = predicate {
events = store.events(matching: aPredicate)
现在,我不关心日期 - 我实际上想在数据库中搜索所有日期。我想检索所有事件,所有过去和未来的日期,其中包含例如事件注释中的文本“我的搜索文本”。我可以定义相应的NSPredicate 条件(以及如何定义?)并将其用于日历搜索吗?一些消息来源暗示这可能是可能的,但我没有看到任何对我有帮助的例子。或者是因为日期过滤器是唯一可以以这种方式使用的过滤器,并且必须在第二次迭代中检查其他条件?
最有效的方法是什么?
【问题讨论】:
标签: ios swift calendar nspredicate ekeventkit