使用唯一标识符进行搜索
如果您知道事件的唯一标识符,因为您之前已使用谓词将其获取,则可以使用EKEventStore方法event(withIdentifier :)来获取事件。如果是重复发生的事件,则此方法将返回该事件的首次出现。您可以使用eventIdentifier属性获取事件的唯一标识符。
类似地,如果您以前通过谓词获取特定提醒的唯一标识符,则可以调用 calendarItem(withIdentifier:)实例方法。 calendarItem(withIdentifier:)可以获取任何日历项(提醒和事件),而event(withIdentifier :)仅获取事件。
我的问题是我想获取EKReminder以使用isCompleted
属性。
// Mark reminder as completed
// Use the completed property to mark a reminder as completed
func complete(_ reminder: EKReminder) {
reminder.isCompleted = true
/* Some my customize code */
// Update the reminder
self.save(reminder)
}
但是
方法func calendarItem(withIdentifier identifier: String) -> EKCalendarItem?
返回EKCalendarItem。
我不想使用for循环来搜索我想要的提醒。 有什么办法吗?
答案 0 :(得分:1)
EKCalendarItem
是EKReminder
和EKEvent
的基类。如果您知道日历项目是一个提醒,请将其投射到EKReminder
let reminder = store.calendarItem(withIdentifier: identifier) as! EKReminder