在我的应用中,我试图获取在特定时间内发生的所有事件。这是我的代码:
let store = EKEventStore()
store.requestAccess(to: EKEntityType.event) { (granted, error) in
if(granted){
let calendars = store.calendars(for: EKEntityType.event)
for calendar in calendars {
let predicate = store.predicateForEvents(withStart: (dates.first?.dateObject)!, end: (dates.last?.dateObject)!, calendars: [calendar])
store.enumerateEvents(matching: predicate){ (event, stop) in
print(event.title)
}
}
}else{
print(error)
}
这个问题是它只检索生日,并且不会检索用户或当天假期创建的事件。 这是我得到的输出: 凯特贝尔的生日 凯特贝尔的生日 凯特贝尔的生日 凯特贝尔的生日 John Appleseed的生日 John Appleseed的生日 John Appleseed的生日 John Appleseed的生日 安娜哈罗的生日 安娜哈罗的生日 安娜哈罗的生日 安娜哈罗的生日 大卫泰勒的生日 大卫泰勒的生日 大卫泰勒的生日 大卫泰勒的生日
答案 0 :(得分:0)
要从所有日历中获取事件,请将nil分配给实例方法predicateForEvents(withStart:end:calendars :)的calendars参数。
let predicate = store.predicateForEvents(withStart: (dates.first?.dateObject)!, end: (dates.last?.dateObject)!, calendars: nil)
https://developer.apple.com/documentation/eventkit/ekeventstore/1507479-predicateforevents