如何在ios日历的EKEvent中设置特定报警?
在EKEvent中,一旦我没有将任何警报设置为event,我就会在日历应用程序中进行检查,它会在5分钟前向我显示警报。为什么?我不明白 我的要求如何在ios日历的EKEvent中设置特定报警?,ios,swift,icalendar,alarm,ekevent,Ios,Swift,Icalendar,Alarm,Ekevent,在EKEvent中,一旦我没有将任何警报设置为event,我就会在日历应用程序中进行检查,它会在5分钟前向我显示警报。为什么?我不明白 我的要求 我想在给定的特定时间之前设置两个警报,1警报打开 比如“5分钟,15分钟,30分钟,1小时”2第二次警报 希望设置活动时间 在搜索如何在事件中添加报警的基础上,我为添加事件做了一些事情,但它不起作用。很多尝试,但在日历中没有效果 请参阅下面的代码,我已经按照我的要求尝试了两种方法,我使用开关盒,甚至尝试添加单个警报。两者都不起作用 我该怎么办 提出
- 我想在给定的特定时间之前设置两个警报,1警报打开 比如“5分钟,15分钟,30分钟,1小时”2第二次警报 希望设置活动时间
- 在搜索如何在事件中添加报警的基础上,我为添加事件做了一些事情,但它不起作用。很多尝试,但在日历中没有效果
- 请参阅下面的代码,我已经按照我的要求尝试了两种方法,我使用开关盒,甚至尝试添加单个警报。两者都不起作用
let event:EKEvent = EKEvent(eventStore: appleEventStore)
event.title = tempDescription
event.startDate = startDate as Date
event.endDate = endDate as Date
event.isAllDay = false
event.notes = "This is a note"
event.calendar = cal
do {
try appleEventStore.save(event, span: .thisEvent)
print("events added with dates:")
let alarm = EKAlarm(relativeOffset: 600)
event.addAlarm(alarm)
switch tempalertid {
case "1":
let aInterval: TimeInterval = -5 * 60
let alaram = EKAlarm(relativeOffset: aInterval)
event.addAlarm(alaram)
case "2":
let aInterval: TimeInterval = -15 * 60
let alaram = EKAlarm(relativeOffset: aInterval)
event.addAlarm(alaram)
case "3":
let aInterval: TimeInterval = -30 * 60
let alaram = EKAlarm(relativeOffset: aInterval)
event.addAlarm(alaram)
case "4":
let aInterval: TimeInterval = -1 * 60 * 60
let alaram = EKAlarm(relativeOffset: aInterval)
event.addAlarm(alaram)
default:
break
}
if event.hasAlarms {
print("yes")
}
else {
print("no")
}
} catch let e as NSError {
print(e.description)
return
}
print("Saved Event")
我有两个想法:
首先,在创建报警之前保存事件
其次,.alarm属性是一个报警数组,您试图单独保存每个报警
我有一个代码示例供您查看,不幸的是,它是用Objective-C编写的
EKEvent *event = [EKEvent eventWithEventStore:store];
EKAlarm *alarmForOneDayBeforeAppointment = [[EKAlarm alloc] init];
alarmForOneDayBeforeAppointment.absoluteDate = [self modifyDate:eventDate
withUnit:NSCalendarUnitDay
andQuantity:-1];
event.alarms = @[alarmForOneDayBeforeAppointment];
[store saveEvent:event span:EKSpanThisEvent error:&err];
将event.alarm设置为数组后,请尝试保存事件。您知道吗?帮助我添加事件的自定义频率,如我要添加每周频率,用户可以选择多天,如用户可以在每个星期一和星期五添加事件,也可以是全天或仅一天,如星期六。我拥有所选日期的数组。打开我的新问题链接:
let event:EKEvent = EKEvent(eventStore: appleEventStore)
event.title = tempDescription
event.startDate = startDate as Date
event.endDate = endDate as Date
event.isAllDay = false
event.notes = "This is a note"
event.calendar = cal
switch tempalertid {
case "1":
let aInterval: TimeInterval = -5 * 60
let alaram = EKAlarm(relativeOffset: aInterval)
event.alarms = [alaram]
case "2":
let aInterval: TimeInterval = -15 * 60
let alaram = EKAlarm(relativeOffset: aInterval)
event.alarms = [alaram]
case "3":
let aInterval: TimeInterval = -30 * 60
let alaram = EKAlarm(relativeOffset: aInterval)
event.alarms = [alaram]
case "4":
let aInterval: TimeInterval = -1 * 60 * 60
let alaram = EKAlarm(relativeOffset: aInterval)
event.alarms = [alaram]
default:
break
}
do {
try appleEventStore.save(event, span: .thisEvent)
print("events added with dates:")
} catch let e as NSError {
print(e.description)
return
}
print("Saved Event")