我需要将iOS应用中创建的时间表与手机的日历同步,而且很多都是重复发生的事件。
将EKRecurrenceRule
用于某些功能很容易,但iOS日历如何处理在定期系列中移动或删除单个事件?
答案 0 :(得分:2)
创建活动时会获得一个ID。您可以使用EKRecurrenceRule
对象创建重复(如您所知),但所有事件的ID保持不变。然后,您可以删除这样的单个事件:
func deleteEvent(eventIdentifier: String) -> Bool {
var successful = false
let eventToRemove = self.eventStore.eventWithIdentifier(eventIdentifier)
if (eventToRemove != nil) {
do {
print("deleting single event")
try self.eventStore.removeEvent(eventToRemove!, span: .ThisEvent)
successful = true
} catch {
print("Bad things happened")
}
}
else
{
print("no event with the identifier")
}
return successful
}
或者你可以删除所有这样的事件:
func deleteFutureEvents(eventIdentifier: String) -> Bool {
var successful = false
let eventToRemove = self.eventStore.eventWithIdentifier(eventIdentifier)
if (eventToRemove != nil) {
do {
print("deleting future events")
try self.eventStore.removeEvent(eventToRemove!, span: .FutureEvents)
successful = true
} catch {
print("Bad things happened")
}
}
else
{
print("no event with the identifier")
}
return successful
}
您可以使用事件ID以类似方式更新单个或所有事件。