【问题标题】:how can i check if event exist on calendar我如何检查日历上是否存在事件
【发布时间】:2016-08-24 20:45:20
【问题描述】:

我正在使用来自 :

的出色代码
func addEventToCalendar(title: String, description: String?, startDate: NSDate, endDate: NSDate, completion: ((success: Bool, error: NSError?) -> Void)? = nil) {

    let eventStore = EKEventStore()

    eventStore.requestAccessToEntityType(.Event, completion: { (granted, error) in

        if (granted) && (error == nil) {

            let event = EKEvent(eventStore: eventStore)

            event.title = title
            event.allDay = true
            event.startDate = startDate
            event.endDate = endDate
            event.notes = description
            event.calendar = eventStore.defaultCalendarForNewEvents

            do {
                try eventStore.saveEvent(event, span: .ThisEvent)
            } catch let e as NSError {
                completion?(success: false, error: e)
                return
            }
            completion?(success: true, error: nil)

        } else {
            completion?(success: false, error: error)
        }

    })
}

但是如何检查事件是否已经存在?

【问题讨论】:

    标签: swift calendar ekeventstore


    【解决方案1】:

    例如,您可以使用与您的活动相同的设置来查看日历上的活动。您可以为此使用NSPredicate

    let startDate = yourStartDate
    let endDate = yourEndDate
    let predicate = eventStore.predicateForEventsWithStartDate(startDate, endDate: endDate, calendars: nil)
    let existingEvents = eventStore.eventsMatchingPredicate(predicate)
    for singleEvent in existingEvents {
        if singleEvent.title == yourEventTitle && singleEvent.startDate == yourStartDate {
            // Event exist
            ...
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多