美文网首页
Swift3-把事件写入到日历中

Swift3-把事件写入到日历中

作者: 殇丶无痕 | 来源:发表于2017-09-30 09:44 被阅读12次

    事件添加

    • 导入头文件 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")
                    
          }
                
      }
      

    相关文章

      网友评论

          本文标题:Swift3-把事件写入到日历中

          本文链接:https://www.haomeiwen.com/subject/bwlgextx.html