无标题文章

---

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")

}

}

```

你可能感兴趣的:(无标题文章)