I'm trying to fetch events from EKEventStore between the last year and the next three years but I got this error:
Error loading timezone data from file system. This is a serious problem. Calendar data is not guaranteed to be accurate.
If I change the lastYear date from adding -1 to 0, no errors are prompted
this is the code:
struct TaskService: TaskServiceProtocol {
let store: EKEventStore
init(withStore store: EKEventStore) {
self.store = store
}
func tasks() -> [TaskItem] {
let calendar = Calendar.current
let today = Date()
let startDate = calendar.date(byAdding: .year, value: -1, to: today)!
let endDate = calendar.date(byAdding: .year, value: 3, to: today)!
let eventsPred = store.predicateForEvents(withStart: startDate, end: endDate, calendars: nil)
let events = store.events(matching: eventsPred) as? [TaskItem] ?? []
return events
}
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
requestAccess()
}
func requestAccess() {
let store = EKEventStore.init()
store.requestAccess(to: .event) { (granted, error) in
let service = TaskService(withStore: store)
let events = service.tasks()
print(events.count)
}
}
}