如何使用EventKit中的CalendarIdentifier获取提醒?

时间:2018-08-05 06:37:12

标签: ios swift eventkit

Apple文档中的

使用唯一标识符进行搜索

  

如果您知道事件的唯一标识符,因为您之前已使用谓词将其获取,则可以使用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循环来搜索我想要的提醒。 有什么办法吗?

1 个答案:

答案 0 :(得分:1)

EKCalendarItemEKReminderEKEvent的基类。如果您知道日历项目是一个提醒,请将其投射到EKReminder

let reminder = store.calendarItem(withIdentifier: identifier) as! EKReminder