EKCalendar 显示不在 Apple 日历中的事件“以自然语言发现”

Posted

技术标签:

【中文标题】EKCalendar 显示不在 Apple 日历中的事件“以自然语言发现”【英文标题】:EKCalendar showing events "Found in Natural Language" which are not in Apple Calendar 【发布时间】:2018-12-17 16:20:37 【问题描述】:

我目前正在阅读所有日历事件,其功能类似于此处所述:https://www.andrewcbancroft.com/2016/04/28/listing-calendar-events-with-event-kit-and-swift/

        // Use an event store instance to create and properly configure an NSPredicate
        let eventsPredicate = eventStore.predicateForEventsWithStartDate(startDate, endDate: endDate, calendars: [calendar])

        // Use the configured NSPredicate to find and return events in the store that match
        self.events = eventStore.eventsMatchingPredicate(eventsPredicate).sort()
            (e1: EKEvent, e2: EKEvent) -> Bool in
            return e1.startDate.compare(e2.startDate) == NSComparisonResult.OrderedAscending
        

现在,在我运行 ios 12.1.1 的 iPhone X 上,这为我提供了一个名为“发现自然语言”的日历中的各种事件。我知道那些应该是 Siri 在邮件等应用程序中发现的事件。我在 iPhone 设置 -> 日历下打开了这个选项。然而,奇怪的是苹果的 iOS 日历并没有显示这些事件,即使通过 Siri 找到的日历是打开的。某些日历应用程序(例如 Fantastical)也不会显示它们,而其他一些应用程序(例如Vantage 日历显示它们。

怎么可能?

【问题讨论】:

同样的问题;你找到解决办法了吗? 【参考方案1】:

这也发生在我身上。一位朋友给我发了一封电子邮件,提到他们的结婚纪念日。 Siri 找到了它,并将它标记为我可以添加到我的日历中的东西。我最初没有在“邮件”中发现这一点,Fantastical 或 Apple Calendar 也没有,但 Vantage 有。所以我认为 Vantage 正在显示 Siri 建议的项目,而它应该只显示已找到、然后接受并添加到日历中的项目。

【讨论】:

以上是关于EKCalendar 显示不在 Apple 日历中的事件“以自然语言发现”的主要内容,如果未能解决你的问题,请参考以下文章

iOS:如何保存首选的 EKCalendar?

使用 EventKit 添加事件和日历

如何在 iOS 中仅获取可见日历

使用 EKEventEditViewController 创建带有警报的日历事件

EKEventstore 和唯一的日历标识符

我们可以将 iOS 中的应用程序的多个 Apple 推送通知设置设置为日历应用程序吗