iOS EKRecurrenceRule异常和编辑

时间:2016-08-30 09:24:48

标签: ios swift icalendar

我需要将iOS应用中创建的时间表与手机的日历同步,而且很多都是重复发生的事件。

EKRecurrenceRule用于某些功能很容易,但iOS日历如何处理在定期系列中移动或删除单个事件?

1 个答案:

答案 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以类似方式更新单个或所有事件。