我正在创建一个虚拟数据并从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断点时刻:
我认为这必须与多线程有关,这是我来自的地方:
Xcode日志:
答案 0 :(得分:1)
好吧,日历的问题实际上是在for循环中创建的EventStore对象,每次在迭代期间,这都是为什么访问它会产生奇怪的行为。当在循环外部创建并传递给降序方法时,它可以工作。