1、首先要在info.plist里面授權(quán)app可以使用日歷
Privacy - Reminders Usage Description
2漾脂、導(dǎo)入需要的事件庫:EventKit.framework
var eventStore: EKEventStore!
@IBAction func onAddAlarmClick(_ sender: Any) {
self.eventStore = EKEventStore()
let formatter = DateFormatter.init()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let date = formatter.date(from: "2018-01-10 01:57:00")
self.eventStore.requestAccess(to: .reminder, completion: { _,error in
let reminder = EKReminder.init(eventStore: self.eventStore)
reminder.title = "今天要運動"
let dueDate = self. dateComponentFromDate(date!)
reminder.dueDateComponents = dueDate
reminder.calendar = self.eventStore.defaultCalendarForNewReminders();
// 添加鬧鐘
let alarm = EKAlarm.init(relativeOffset: -5)
reminder.addAlarm(alarm);
do {
// try self.eventStore.save(event, span: span)
try self.eventStore.save(reminder, commit: true)
print("保存成!")
}catch{
print("創(chuàng)建失敗: \(error)")
}
})
}
//根據(jù)NSDate獲取對應(yīng)的NSDateComponents對象
func dateComponentFromDate(_ date: Date)-> DateComponents{
let calendarUnit: Set<Calendar.Component> = [.minute, .hour, .day, .month, .year]
let dateComponents = NSCalendar.current.dateComponents(calendarUnit, from: date)
return dateComponents
}