2016-08-30 25 views
0

我需要將iOS應用中創建的計劃與手機的日曆同步,而且很多都是重複發生的事件。iOS EKRecurrenceRule異常和編輯

對於某些功能很容易使用EKRecurrenceRule,但iOS日曆如何在循環系列中處理移動或刪除單個事件?

回答

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。