2

我对 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)
    }
}
4

1 回答 1

1

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

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

我希望能够让该事件在当天重复发生一定次数 - 比如说 4。

Here's the documentation for creating Recurring Events 似乎您不能在特定日期重复发生 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)

这有帮助吗?

于 2016-03-18T07:38:06.653 回答