Swift3-把事件写入到日历中

事件添加

  • 导入头文件 import EventKit

  • 创建 EKEventStore类型的实例eventStore 以及事件的id eventIdentifier

  • 获取请求权限

    var eventStore: EKEventStore!
          
    eventStore.requestAccess(to: .event) { (success, error) in
              
        if error != nil {
                  
            // 错误中心
            print(error ?? "")
                  
        }else if !success {
                  
            // 用户被拒绝
                  
            print(error ?? "")
                  
        }else{
                  
            // 创建事件
                  
        }
              
    }
    
  • 在else里面创建事件

    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"

    let eventToRemove = eventStore.event(withIdentifier: eventIdentifier!)
          
    if (eventToRemove != nil) {
              
        do {
                  
            try eventStore.remove(eventToRemove!, span: .thisEvent)
                  
        } catch {
                  
            print("Bad things happened")
                  
        }
              
    }
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,461评论 19 139
  • 1.NSTimer //暂停if ([timer isValid]) {[timer setFireDate:[N...
    俊月阅读 5,196评论 0 0
  • 1.badgeVaule气泡提示 2.git终端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夹内容...
    i得深刻方得S阅读 10,220评论 1 9
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,755评论 0 17
  • 1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现cl...
    以德扶人阅读 7,539评论 2 50