如何在ios日历中的EKEvent中设置特定警报?

时间:2017-05-19 13:30:29

标签: ios swift icalendar alarm ekevent

在EKEvent中,一旦我没有为事件设置任何警报,那么我会检查日历应用程序并在5分钟之前显示警报。为什么?我不明白。

我的要求

  • 我想在给定的特定时间之前设置两个警报 1 警报 喜欢" 5分钟,15分钟,30分钟,1小时" 2 第二次提醒 想要在活动时间设定。

  • 在搜索如何在事件中添加警报的基础上,我为添加事件做了一些事情但是它不起作用。很多尝试但在日历中没有效果。

  • 看下面的代码我已按照我的要求尝试了两种方式我使用switch case甚至尝试添加单个警报。两者都不起作用。

我该怎么做?

提出任何建议,解决方案,想法

由于

query = query.Include(c => c.ClinicAmenities).ThenInclude(ca => ca.Amenity);

2 个答案:

答案 0 :(得分: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


    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")

答案 1 :(得分:1)

我有两个想法:

首先,您要在创建闹钟之前保存活动。

其次,.alarm属性是一个警报数组,您试图单独保存每个警报。

我有一个代码示例供您查看,遗憾的是,它是用Objective-C编写的。

<?xml

将event.alarm设置为数组后尝试保存事件。