Swift カレンダー、イベント追加、アラーム設定

「Swift カレンダー、イベント追加、カレンダー(EKCalendar)設定」の続き

イベントにアラーム設定

EKAlarm.init(absoluteDate:)を使いたくなるが、
純正カレンダーアプリで見る「イベントの予定時刻」「5分前」等にするには、
EKAlarm.init(relativeOffset:)を使用する。
アラームを発生するという意味では同じだが、純正カレンダーアプリでの表示が違う。

let event = EKEvent(eventStore: eventStore)
event.title = self.titleText.text
event.startDate = self.startDatePicker.date
event.endDate = self.endDatePicker.date
let calendar = self.calendars[calendarPicker.selectedRow(inComponent: 0)]
event.calendar = eventStore.calendar(withIdentifier: calendar!.calendarIdentifier)
if allday == true {
    event.isAllDay = true
}
let alarmEvent = EKAlarm(relativeOffset: 0)
let alarm5Minute = EKAlarm(relativeOffset: 60 * -5)
event.alarms = [alarmEvent, alarm5Minute]
do {
    try eventStore.save(event, span: .thisEvent)
    self.viewController?.pageUpsert()
    self.viewController?.updateDays()
    self.dismiss(animated: true, completion: nil)
}
catch {
    let nserror = error as NSError
    print(nserror)
}

Swift

Posted by shi-n