在 iOS Swift 中设置提醒

app*_*ing 5 ios ekeventstore swift

我试图在我的 swift 应用程序中设置一个简单的 EKReminder 来提醒用户赶公交车。但是,当我尝试保存提醒时,我总是收到错误(没有报告错误,应用程序只是崩溃)。我有下面的代码。

public class func createReminder(reminderTitle: String, timeInterval:      NSDate) {
    var calendarDatabase = EKEventStore()

    calendarDatabase.requestAccessToEntityType(EKEntityTypeReminder,
        completion: nil)

    let reminder = EKReminder(eventStore: calendarDatabase)

    reminder.title = reminderTitle

    let alarm = EKAlarm(absoluteDate: timeInterval)

    reminder.addAlarm(alarm)

    reminder.calendar = calendarDatabase.defaultCalendarForNewReminders()

    var error: NSError?

    calendarDatabase.saveReminder(reminder, commit: true, error: &error)
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*ico 8

以下内容应该适用于Swift 4.2

func AddReminder() {

 eventStore.requestAccess(to: EKEntityType.reminder, completion: {
  granted, error in
  if (granted) && (error == nil) {
    print("granted \(granted)")


    let reminder:EKReminder = EKReminder(eventStore: self.eventStore)
    reminder.title = "Must do this!"
    reminder.priority = 2

    //  How to show completed
    //reminder.completionDate = Date()

    reminder.notes = "...this is a note"


    let alarmTime = Date().addingTimeInterval(1*60*24*3)
    let alarm = EKAlarm(absoluteDate: alarmTime)
    reminder.addAlarm(alarm)

    reminder.calendar = self.eventStore.defaultCalendarForNewReminders()


    do {
      try self.eventStore.save(reminder, commit: true)
    } catch {
      print("Cannot save")
      return
    }
    print("Reminder saved")
  }
 })

}
Run Code Online (Sandbox Code Playgroud)

info.plist还需要适当的隐私设置。 在此输入图像描述


小智 -1

try the following:

EKEntityTypeReminder -> EKEntityType.Reminder
Run Code Online (Sandbox Code Playgroud)