EKEventStore对象问题 - EKErrorDomain“没有设置日历”

时间:2015-11-17 12:55:27

标签: ios xcode swift2 eventkit ekeventkit

我正在创建一个虚拟数据并从for循环中调用此方法200次:

    func createEvent(eventStore: EKEventStore, title: String, startDate: NSDate, endDate: NSDate) {
    let event = EKEvent(eventStore: eventStore)

    event.title = title
    event.startDate = startDate
    event.endDate = endDate
    event.calendar = eventStore.defaultCalendarForNewEvents
    do {
        try eventStore.saveEvent(event, span: .ThisEvent)
        print("Adding event \(event.title)")
        //savedEventId = event.eventIdentifier
    } catch {
        print("Bad things happened 1")
    }
}

正确地制作了一些事件,但从大约90-100开始 - 我在捕捉到“坏事发生”时遇到错误。当我在那里设置断点时,我看到EKErrorDomain“没有设置日历”,如果某些事件被正确制作,那怎么可能呢?为什么它不一致?

Xcode断点时刻:

enter image description here

我认为这必须与多线程有关,这是我来自的地方:

enter image description here

Xcode日志:

enter image description here

1 个答案:

答案 0 :(得分:1)

好吧,日历的问题实际上是在for循环中创建的EventStore对象,每次在迭代期间,这都是为什么访问它会产生奇怪的行为。当在循环外部创建并传递给降序方法时,它可以工作。