【发布时间】:2017-06-10 06:24:03
【问题描述】:
我正在创建一个附加到自定义日历的 EKEvent。每当我创建 EKEvent 时,都会为事件的时间设置一个警报,但是,我希望这个事件在创建时没有警报。
我已尝试将事件的警报属性设置为...
event.alarms = nil
还有……
event.alarms = []
我也尝试将警报设置为遥远的未来数据,但这只是为事件添加了另一个警报...
event.alarms = [Date.distantFuture]
我在保存事件之前已经完成了所有这些操作,但它没有给我任何结果,无论我做什么都会触发警报。 :(
这是我用来创建日历的代码:
let calendar = EKCalendar(for: .event, eventStore: store)
var source = store.sources.filter{ $0.sourceType == .calDAV && $0.title == "iCloud" }.first
if source == nil {
source = store.sources.filter{ $0.sourceType == .local }.first
}
calendar!.title = "Some Title"
calendar!.cgColor = ColorKey.orange.color().cgColor
calendar!.source = source!
do {
try store.saveCalendar(calendar!, commit: true)
} catch {
//error handling here...
}
这是我用来创建事件的代码:
let event = EKEvent(eventStore: store)
event.title = "Some title"
event.notes = "Some notes"
event.startDate = dateToFire
event.endDate = dateToFire.addingTimeInterval(TimeInSeconds.hour.rawValue)
event.isAllDay = false
event.calendar = calendar
do {
try store.save(event, span: EKSpan.futureEvents)
} catch {
//error handling here...
}
这是操作系统上的错误还是我遗漏了什么? 谢谢!
【问题讨论】:
-
丹尼,我正要发布一个相同的问题。除了删除警报(尽管没有要删除的警报)之外,我还尝试在创建事件时保存
eventIdentifier,然后(很久以后)返回并获取相同的事件。仍然没有要删除的警报。我可以使用日历应用程序手动删除警报(通过将警报设置为“无”)。但是,在创建和保存事件时如何以编程方式进行呢?如果您还没有解决这个问题,我们可以尝试通过设置赏金来获得关注。 -
我已经找到并发布了答案。