簡體   English   中英

如何在日歷中的EKEvent中設置無警報

[英]How set no alarm in EKEvent in calendar

當我為日歷創建新的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?

你應該設置一個沒有警報的空NSArray ,如下所示:

EKEvent *event = // whatever...
[event setAlarms:[NSArray array]];

我發現默認鬧鍾是由Settings.app設置的日歷設置。 如果在settings.app中設置了默認警報,我找不到正確設置事件而沒有警報的方法。

我終於找到了為什么有些人在創建新的EKEvents事件時會發出警報的原因,盡管我們已經指定了警報。 對我而言,我猜你們大多數人都選擇日歷是Google日歷。 Google日歷的設置可為每個添加的新活動創建鬧鍾。 要將其關閉,請在網絡瀏覽器上登錄您的Google日歷以將其關閉。 我希望這會挽回一些挫敗感! 布里茲,埃里克

看起來禁用警報的唯一方法是使用以下代碼在遙遠的將來創建警報

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

希望這可以幫助。

問題根據我的經驗解決了。 它取決於設備,不在模擬器中,通過設置/郵件,聯系人,日歷/默認警報時間/事件設置。 如果設置為“無”,則可以添加警報或保留默認值,即nil。 有用。 如果設置為其他任何內容,則會覆蓋您對事件警報所做的任何設置,包括nil。

對我來說,唯一的方法是在創建后立即從事件中手動刪除它:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM