swift - 如何使用 swift 在设备日历中添加事件?

标签 swift ekevent ekeventstore

我很想知道如何在设备中添加日历事件,但使用 swift。我知道有一些用 Objective-C 制作的例子,但目前还没有。非常感谢。

最佳答案

注意:如果您的应用因而崩溃,则此应用已崩溃,因为它试图在没有使用说明的情况下访问隐私敏感数据。应用程序的 Info.plist 必须包含一个 NSCalendarsUsageDescription 键和一个字符串值,向用户解释应用程序如何使用此数据。,您需要将 NSCalendarsUsageDescription 添加到您的 info.plist。可以照例here .

Swift 5.0 版本

import Foundation
import EventKit

let eventStore : EKEventStore = EKEventStore()
      
// 'EKEntityTypeReminder' or 'EKEntityTypeEvent'

eventStore.requestAccess(to: .event) { (granted, error) in
  
  if (granted) && (error == nil) {
      print("granted \(granted)")
      print("error \(error)")
      
      let event:EKEvent = EKEvent(eventStore: eventStore)
      
      event.title = "Test Title"
      event.startDate = Date()
      event.endDate = Date()
      event.notes = "This is a note"
      event.calendar = eventStore.defaultCalendarForNewEvents
      do {
          try eventStore.save(event, span: .thisEvent)
      } catch let error as NSError {
          print("failed to save event with error : \(error)")
      }
      print("Saved Event")
  }
  else{
  
      print("failed to save event with error : \(error) or access not granted")
  }
}   

引用:https://gist.github.com/mchirico/d072c4e38bda61040f91

关于swift - 如何使用 swift 在设备日历中添加事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28379603/

相关文章:

ios - EKEventKit - 如何在批量提交后检索 eventIdentifier?

ios - 在 ios 中分别在一个 nsdate 中设置日期和时间时出现错误时间

ios - 在 IOS 中创建事件时,日历事件添加了多次

ios - 如果用户使用非 iOS 帐户,则以编程方式将新日历添加到日历应用程序

ios - 按下按钮时如何在 UITableviewCell 中显示自定义 View ?

ios - EKEvent 的 eventIdentifier 和 calendarItemExternalIdentifier 的区别

ios - saveEvent 返回 "No calendar has been set"

objective-c - 如何将此 Swift 语法转换为 Objective C?

ios 表数据不显示

iOS:具有外部参数的对象类中的 setter