4

当我为日历创建新EKEvent日历时,我注意到会自动添加9活动当天的警报广告,我该如何设置否alarm?我试过这样:

EKEvent *event = [EKEvent eventWithEventStore:eventStore];
event.titile = @"This is an event";
event.calendar = calendar;
event.alarms = nil; //in this way don't work...

但不起作用,在日历中我看到警报你如何看到:

在此处输入图像描述

任何人都知道我如何在没有警报的情况下添加 EKEvent?

4

6 回答 6

1

您应该设置一个没有警报的空NSArray,如下所示:

EKEvent *event = // whatever...
[event setAlarms:[NSArray array]];
于 2012-12-11T14:27:53.913 回答
1

我发现默认闹钟是由日历设置的 Settings.app 设置的。如果在 settings.app 中设置了默认警报,我找不到设置没有警报的事件的正确方法。

于 2013-01-23T07:58:41.293 回答
1

我终于找到了为什么我们中的一些人在创建新的 EKEvents 事件时收到警报的原因,尽管我们已经指定了警报关闭。对我来说,我猜对你们大多数人来说,选定的日历是谷歌日历。谷歌日历有一个设置,它为每个添加的新事件创建一个警报。要关闭它,请在网络浏览器上登录您的谷歌日历以将其关闭。我希望这会节省一些挫败感!Brgds,埃里克

于 2014-11-04T22:23:19.953 回答
1

似乎禁用警报的唯一方法是使用以下代码在遥远的将来创建一个

EKAlarm * alarm = [EKAlarm alarmWithAbsoluteDate:[NSDate distantFuture]];
event.alarms = @[alarm];

希望这可以帮助。

于 2015-05-07T00:10:48.273 回答
1

对我来说,唯一的方法是在创建后手动将其从事件中删除:

private func CreateEntry(calendar : EKCalendar, date: Date, prop: String) {

    let event:EKEvent = EKEvent(eventStore: eventStore)

    event.title = prop
    event.startDate = date
    event.endDate = date
    event.isAllDay = true
    event.notes = prop
    event.calendar = calendar //eventStore.defaultCalendarForNewEvents

    if event.alarms != nil {
        for del in event.alarms! {
            event.removeAlarm(del)
        }
    }

    do {
        try eventStore.save(event, span: EKSpan.thisEvent, commit: true)
    } catch let error as NSError {
        print("failed to save event with error : \(error)")
    }
}
于 2019-05-04T15:15:40.737 回答
0

根据我的经验解决了问题。它取决于,在设备中,而不是在模拟器中,取决于设置/邮件、联系人、日历/默认警报时间/事件设置。如果设置为无,您可以添加警报或将其保留为默认值,即 nil。有用。如果设置为其他任何值,这将覆盖您对事件警报所做的任何设置,包括 nil。

于 2015-11-20T16:44:27.437 回答