Swift UIEventKit-为特定日期创建事件

Swift UIEventKit-为特定日期创建事件,swift,uievent,Swift,Uievent,我对swift还很陌生,所以我只是希望有人能帮助我-我正在尝试使用UIEventKit将一个事件添加到日历中(我已经知道如何做),但是有两件事我不确定: 1-我希望能够将事件添加到特定日期的下一个实例中。下个星期一 2-我希望能够让那个事件在那天重复一定次数-比如说4次 任何人如能提供上述任何一项帮助,将不胜感激 以下是我目前掌握的情况: func createEvent(eventStore: EKEventStore, title: String, startDate: NSDate, en

我对swift还很陌生,所以我只是希望有人能帮助我-我正在尝试使用UIEventKit将一个事件添加到日历中(我已经知道如何做),但是有两件事我不确定:

1-我希望能够将事件添加到特定日期的下一个实例中。下个星期一

2-我希望能够让那个事件在那天重复一定次数-比如说4次

任何人如能提供上述任何一项帮助,将不胜感激

以下是我目前掌握的情况:

func createEvent(eventStore: EKEventStore, title: String, startDate: NSDate, endDate: NSDate){
    let event = EKEvent(eventStore: eventStore)

    event.title = title
    event.startDate = startDate
    event.endDate = endDate
    event.calendar = eventStore.defaultCalendarForNewEvents
    do {
        try eventStore.saveEvent(event, span: .ThisEvent)
    }catch {
        let alertView = UIAlertController(title: "Access Denied", message: "Please change your settings to allow us to access your calendar", preferredStyle: UIAlertControllerStyle.Alert)

        alertView.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))

        self.presentViewController(alertView, animated: true, completion: nil)
    }
}


@IBAction func addToCalendar(sender: UIButton) {

    let eventStore = EKEventStore()
    let startDate = NSDate()
    let endDate = startDate.dateByAddingTimeInterval(60 * 30)

    if (EKEventStore.authorizationStatusForEntityType(.Event) != EKAuthorizationStatus.Authorized) {
        eventStore.requestAccessToEntityType(.Event, completion: {
            granted, error in
            self.createEvent(eventStore, title: "Psychology Lecture", startDate: startDate, endDate: endDate)

        })

    }else {
        createEvent(eventStore, title: "Psychology Lecture", startDate: startDate, endDate: endDate)
    }
}
我希望能够将事件添加到特定日期的下一个实例中。下个星期一

您如何处理应用程序的UI?对于这种情况,最好的选择是显示日期选择器,并让用户选择日期。然后,您可以为该特定日期创建一个事件

我希望能够让那个事件在那天重复一定次数——比如说4次

以下是创建重复事件的方法,您似乎无法在特定的一天中让事件重复n次

我建议-在不同的时间举办活动,或者全天举办活动

一整天的活动

event.allDay = true
为了在不同的时间举办活动,我在不同的时间安排了一天

 createEvent(eventStore, title: "Psychology Lecture", startDate: startDate, endDate: endDate)
 //Bump up the time by 30 minutes
 startDate = startDate.dateByAddingTimeInterval(60 * 30)
 endDate = endDate.dateByAddingTimeInterval(60 * 30)
 self.createEvent(eventStore, title: "Another Psychology Lecture", startDate: startDate, endDate: endDate)

这有帮助吗?

Hi Karthik,非常感谢您抽出时间与我联系-不幸的是,如果他们不得不选择自己的日期来存储事件,可能会影响用户体验(因为这将是每周都会发生的事情)。关于重复发生的事件,我认为我没有很好地表达这个问题,因为我实际上是想让事件在未来4周的同一天发生一次,而不是在同一天——我不确定这是否是可能的?