创建没有警报的EKEvent

时间:2017-06-10 06:24:03

标签: ios iphone swift eventkit

我正在创建附加到自定义日历的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...
}

这是操作系统上的错误还是我错过了什么? 谢谢!

2 个答案:

答案 0 :(得分:0)

您是否尝试过EkCalendarItem类中的removealaram方法?

答案 1 :(得分:0)

Apple的“日历”应用程序中有默认警报设置。启动日历,然后转到“首选项”,“警报”。那里有三个设置(事件,全天事件,生日)。将它们设置为“无”。 (我使用的是macOS 10.14,日历11.0。)