eventStore.saveCalendar返回错误“ json错误:发生意外错误”。

时间:2019-02-20 16:43:20

标签: swift eventkit

我正在尝试在https://www.andrewcbancroft.com/2015/06/17/creating-calendars-with-event-kit-and-swift/中实现相同的代码,但是收到一条错误消息,指出“ json错误:发生意外错误”。我正在为macOS开发此项目。

这是我的以下代码,

@IBAction func addPressed(_ sender: NSButton) {

    // Create an Event Store instance
    let eventStore = EKEventStore();

    // Use Event Store to create a new calendar instance
    // Configure its title
    let newCalendar = EKCalendar(for: .event, eventStore: eventStore)

    // Probably want to prevent someone from saving a calendar
    // if they don't type in a name...
    newCalendar.title = "DCU"

    // Access list of available sources from the Event Store
    let sourcesInEventStore = eventStore.sources

    // Filter the available sources and select the "Local" source to assign to the new calendar's
    // source property
    newCalendar.source = sourcesInEventStore.filter{
        (source: EKSource) -> Bool in
        source.sourceType.rawValue == EKSourceType.local.rawValue
        }.first!

    // Save the calendar using the Event Store instance
    do {
        try eventStore.saveCalendar(newCalendar, commit: true)
    } catch {
        print("json error: \(error.localizedDescription)")
    }
}

当我构建项目并单击运行时,它给我错误“ json错误:发生意外错误。”。当我尝试将事件添加到defaultcalendar时,它给我一个错误“ json错误:未设置日历”。我已经尝试了所有可用的在线资源,但找不到解决方案。无论如何,eventStore.save或eventStore.saveCalendar都不适合我。有人可以让我知道我要怎么做吗?

1 个答案:

答案 0 :(得分:0)

两个可能的原因

  1. 根据EKEventStore

    的文档
      

    要访问用户的日历数据,所有沙盒化macOS应用必须包含com.apple.security.personal-information.calendars权利。要了解有关与应用沙箱相关的权利的更多信息,请参阅Enabling App Sandbox

  2. 检查商店的authorizationStatus,并在必要时致电requestAccess


您的错误消息具有误导性,该错误与JSON无关。