Swift3 Swift 3:EKEventStore不';t排除复发的单一事件
这是我简化的事件删除函数,不能很好地处理复发。 EventStore在应用程序加载时创建一次。 使用recurrenceRule编辑和保存单个事件可以正常工作,但是使用recurrenceRule删除事件会删除所有事件,而不是一个事件,无论我通过了什么。同时删除未来事件(EKSpan.futureEvents),也会从同一复发事件中删除以前的事件。其他一切看起来都很好 我错过了什么?谢谢你抽出时间Swift3 Swift 3:EKEventStore不';t排除复发的单一事件,swift3,Swift3,这是我简化的事件删除函数,不能很好地处理复发。 EventStore在应用程序加载时创建一次。 使用recurrenceRule编辑和保存单个事件可以正常工作,但是使用recurrenceRule删除事件会删除所有事件,而不是一个事件,无论我通过了什么。同时删除未来事件(EKSpan.futureEvents),也会从同一复发事件中删除以前的事件。其他一切看起来都很好 我错过了什么?谢谢你抽出时间 let eventStore = EKEventStore() func deleteEven
let eventStore = EKEventStore()
func deleteEvent(_ storedEventID: String)
{
eventStore.requestAccess(to: .event, completion: { (granted, error) in
if (granted) && (error == nil)
{
if let calendarEvent_toDelete = self.eventStore.event(withIdentifier: storedEventID){
//recurring event
if calendarEvent_toDelete.recurrenceRules?.isEmpty == false
{
let alert = UIAlertController(title: "Repeating Event", message:
"This is a repeating event.", preferredStyle: UIAlertControllerStyle.alert)
//delete this event only
let thisEvent_Action = UIAlertAction(title: "Delete this event", style: UIAlertActionStyle.default)
{
(result : UIAlertAction) -> Void in
//sometimes doesn't delete anything, sometimes deletes all reccurent events, not just current!!!
do{
try self.eventStore.remove(calendarEvent_toDelete, span: .thisEvent)
} catch let e as NSError{return}
}
alert.addAction(thisEvent_Action)
if let topViewController = UIApplication.topViewController(){
topViewController.modalPresentationStyle = UIModalPresentationStyle.overFullScreen
topViewController.present(alert, animated: true)
}
}
//not recurring event
else{
//works fine
do{
try self.eventStore.remove(calendarEvent_toDelete, span: EKSpan.thisEvent)
} catch let e as NSError{
return
}
}
}
}
})
}
这有帮助
func deleteEvent(calendarEvent_toDelete: EKEvent){
...
calendarEvent_toDelete.recurrenceRules?.removeAll()
try self.store.save(calendarEvent_toDelete, span: .thisEvent)
try self.store.remove(calendarEvent_toDelete, span: .thisEvent, commit: true)
...
}
这有帮助
func deleteEvent(calendarEvent_toDelete: EKEvent){
...
calendarEvent_toDelete.recurrenceRules?.removeAll()
try self.store.save(calendarEvent_toDelete, span: .thisEvent)
try self.store.remove(calendarEvent_toDelete, span: .thisEvent, commit: true)
...
}
找到我的问题,但不在发布的代码中。找到我的问题,但不在发布的代码中。