使用函数获取然后返回[EKReminder]的数组以传递到下一步。但是,我可以在eventStore.fetchReminders代码块中获取提醒数组,只是似乎无法再将其删除?
我想调用此函数并获取[EKReminder]返回。尝试了此迭代以及其他许多迭代,并且在块中打印提醒的同时-myReminders始终为空。
func getReminders()-> [EKReminder] {
let reminders = eventStore.calendars(for: .reminder)
var myReminders = [EKReminder]()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let start = dateFormatter.date(from: "2019-04-14")
let end = dateFormatter.date(from: "2019-04-20")
let remindersPredicate = eventStore.predicateForIncompleteReminders(withDueDateStarting: start!, ending: end!, calendars: reminders)
eventStore.fetchReminders(matching: remindersPredicate, completion: {(these: [EKReminder]?) -> Void in
myReminders = these!
print (myReminders)
for myr in myReminders {
// these all print fine :)
print ("title: \(String(describing: myr.title))")
print ("prio: \(myr.priority)")
print ("notes: \(String(describing: myr.notes))")
print ("due: \(String(describing: myr.dueDateComponents))")
}
} )
// Here it just prints [] ie an empty array :(
print (myReminders)
return myReminders
}
这样调用func:
让thisIsTheArrayIWant = getReminders()
thisIsTheArrayIWant始终为空。叹气。