gpt4 book ai didi

ios - 使用 EventKit 检查并(可能)从 Swift 中的日历中删除事件

转载 作者:可可西里 更新时间:2023-11-01 01:00:12 25 4
gpt4 key购买 nike

我正在寻找一种方法来在添加事件之前检查日历中是否已经存在该事件。如果确实存在,我想在添加新版本之前删除该事件。这是我的 createEvent 函数:

func createEvent(eventStore: EKEventStore, title: String, startDate: NSDate, endDate: NSDate, place:String) {
let event = EKEvent(eventStore: eventStore)
event.title = title
event.startDate = startDate
event.endDate = endDate
event.calendar = eventStore.defaultCalendarForNewEvents
let alarm:EKAlarm = EKAlarm(relativeOffset: -60*60*6)
event.alarms = [alarm]
event.location = place


do {

try eventStore.saveEvent(event, span: .ThisEvent)
savedEventId = event.eventIdentifier
self.eventSaved = true

} catch {
self.eventSaved = false

}


}

基本上我想将其插入到 saveEvent 位之上以避免重复。我宁愿删除现有事件而不是什么都不做的原因是,如果有重复,总是添加最新版本。这很可能是一件简单的事情,但我似乎找不到任何相关信息。

最佳答案

我认为您不需要删除旧事件。只需检索旧值并将所有值替换为新值即可。

为了实现这一点,您需要在数据模型中存储 eventIdentifier,就像您在示例中使用“savedEventId”所做的那样

所以不要总是像第一行那样创建一个事件:

let event = EKEvent(eventStore: eventStore)

改为这样做:

let event: EKEvent?
// if I have a previous event identifier i can try to retrieve the event
if let eventIdentifier = savedEventId {
event = eventStore.eventWithIdentifier(eventIdentifier)
}
// if i did not find it, then i create a new one
if event == nil {
event = EKEvent(eventStore: eventStore)
}

event.title = title
event.startDate = startDate
event.endDate = endDate
....

关于ios - 使用 EventKit 检查并(可能)从 Swift 中的日历中删除事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35218188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com