---
title: Swift-把事件写入到日历中
date: 2017-05-31 10:21:14
categories: Swift
tags: [Swift 功能]
---
把APP事件写入到苹果软件**日历**中
## 事件添加
* 导入头文件 **import EventKit**
* 创建 **EKEventStore**类型的实例**eventStore** 以及事件的id **eventIdentifier**
* 获取请求权限
```swift
eventStore.requestAccess(to: .event) { (success, error) in
if error != nil {
// 错误中心
print(error ?? "")
}else if !success {
// 用户被拒绝
print(error ?? "")
}else{
// 创建事件
}
}
```
* 在else里面创建事件
```swift
let event: EKEvent = EKEvent(eventStore: self.eventStore)
event.title = "您今天该还款了,借贷宝 1000元"
event.location = "我在上海浦东软件园"
// 开始时间 应该传入时间戳
event.startDate = self.dateFrom(time: "2017-05-27 11:37:00", format: "yyyy-MM-dd HH:mm:ss")
// 结束时间 时间到了 该事件从日历中消失
event.endDate = self.dateFrom(time: "2017-05-27 11:38:00", format: "yyyy-MM-dd HH:mm:ss")
// 提醒时间 按照秒来计算
event.addAlarm(EKAlarm(relativeOffset: -10))
event.addAlarm(EKAlarm(relativeOffset: -30))
event.addAlarm(EKAlarm(relativeOffset: -50))
event.calendar = self.eventStore.defaultCalendarForNewEvents
do {
// 事件添加成功
try self.eventStore.save(event, span: .thisEvent)
print(event.eventIdentifier)
self.eventIdentifier = event.eventIdentifier
} catch {
print("有坏银!")
}
```
## 事件删除
* 根据之前获取的id **"eventIdentifier"**
```swift
let eventToRemove = eventStore.event(withIdentifier: eventIdentifier!)
if (eventToRemove != nil) {
do {
try eventStore.remove(eventToRemove!, span: .thisEvent)
} catch {
print("Bad things happened")
}
}
```