如何在ios日历中设置EKEvent中的特定闹钟?
问题描述:
在EKEvent中,一旦我没有设置任何闹钟事件,然后我检查日历应用程序,它显示我5分钟前警报。为什么?我不明白这一点。如何在ios日历中设置EKEvent中的特定闹钟?
我的要求
我想设置两个警报,警报之前给出具体时间 像 “五分钟,15分30分,1小时”。 第二次提醒 想在事件时间设置。
在搜索如何添加报警的事件的基础上,我做了一些事件,但是它不起作用。很多尝试,但在日历中没有影响。
看到下面的代码我已经尝试了两种方式,根据我的要求我使用开关柜,甚至尝试添加单个报警。两者都不起作用。
我该怎么办?
给出任何建议,解决方案,想法
感谢
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设置为数组后,尝试保存事件。
你知道吗帮助我添加自定义频率的事件,比如我想添加每周频率,用户可以选择多个日期,如用户可以在每个星期一和星期五添加事件,或者可以是全天或只有一个特定的日期像星期六。我有选定的一天阵列。 – hardik
打开我的新问题链接:http://stackoverflow.com/q/44111168/6638267 – hardik