首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EKEventStore不返回任何数据。

EKEventStore不返回任何数据。
EN

Stack Overflow用户
提问于 2022-01-30 00:53:02
回答 1查看 68关注 0票数 0

你好,我正在编写一个超级简单的mac应用程序来从我的日历中检索事件。它应该是非常直截了当的,但不知何故,我没有从EKEventStore获得任何数据,也没有从事件或日历等。

我有以下代码:

代码语言:javascript
复制
func getEvents(completion: @escaping ([EKEvent]) -> ()) {
    self.store.requestAccess(to: .event) { granted, error in
        guard granted, error == nil else {
            print("no access")
            return
        }
        
        let calendar = Calendar.current
        var startComponents = DateComponents()
        startComponents.month = -2
        let startDate = calendar.date(byAdding: startComponents, to: Date())
        
        var endComponents = DateComponents()
        endComponents.day = -1
        let endDate = calendar.date(byAdding: endComponents, to: Date())
        
        guard let startDate = startDate, let endDate = endDate else {
            print("dates are broken")
            completion([])
            return
        }
        
        let predicate = self.store.predicateForEvents(withStart: startDate, end: endDate, calendars: nil)
        print("startDate: \(startDate), endDate: \(endDate), predicate: \(predicate)")
        completion(self.store.events(matching: predicate))
    }
}

NSCalendarsUsageDescription设置在info.plist中,但是我总是得到一个空数组。我尝试检索所有日历- self.store.calendars(for: .event),以查看我的事件谓词中是否存在错误,并且仍然是一个空数组。

我相信我会做文件上说的每件事。我遗漏了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2022-09-28 07:31:12

根据EKEventStore.calendars is always empty after clean install,尝试在授予权限后立即重新实例化eventStore。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70911007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档