通过应用程序添加的提醒不显示闹钟时间

Reminder added through app not showing alarm time

我正在编写一个允许用户添加带有闹钟时间的提醒的应用程序。提醒正常工作,闹钟在应该的时候响起,但是当我进入提醒应用程序并查看我的应用程序中设置的提醒时,闹钟文本没有出现在 [=11 中的提醒名称下=].

这是提醒应用程序,显示了通过提醒应用程序设置的提醒和通过我的应用设置的提醒:

即使文本未显示在单元格中,如果我编辑提醒,闹钟设置正确:

现在,该应用程序没有太多内容 - 我才刚刚开始。这是我当前用于添加提醒的屏幕。

这是用于添加提醒和闹钟的代码:

func createReminder() {

    let reminder = EKReminder(eventStore: appDelegate.eventStore!)

    reminder.title = reminderText.text!
    reminder.calendar =
        appDelegate.eventStore!.defaultCalendarForNewReminders()
    let date = myDatePicker.date
    let alarm = EKAlarm(absoluteDate: date)

    reminder.addAlarm(alarm)

    do {
        try appDelegate.eventStore?.save(reminder,
                                         commit: true)
    } catch let error {
        print("Reminder failed with error \(error.localizedDescription)")
    }
}

我可能遗漏了什么?

我想我明白你的问题了。我刚刚使用你的代码创建了一个提醒,它只是创建了一个副标题中没有日期的提醒。

我们需要了解的是设置闹钟日期!=提醒的截止日期。用户可以设置截止日期 date/timing 并在截止日期前添加提醒。阅读 documentation 了解更多信息。

要添加日期你需要设置 dueDateComponents 属性 of EKReminder object 你传递给 eventStore。如下图,

let reminder = EKReminder(eventStore: eventStore)
reminder.title = reminderText
reminder.calendar = eventStore.defaultCalendarForNewReminders()

let date = Date().addingTimeInterval(10000)
let alarm = EKAlarm(absoluteDate: date)
reminder.addAlarm(alarm)

let dateComponents = NSDateComponents();
dateComponents.year = 2018
dateComponents.day = 14
dateComponents.hour = 11
dateComponents.month = 1
reminder.dueDateComponents = dateComponents as DateComponents

do{
     try eventStore.save(reminder, commit: true)
} catch let error {
     print("Reminder failed with error \(error.localizedDescription)")
}

下面的屏幕截图显示了 4 个事件。第一个和最后一个是手动创建的,第二个是在没有 dueDateComponents 的情况下从您的代码创建的,第三个是使用 dueDateComponents 创建的。