swift - 在 EKEventStore 中创建 EKCalendar - Swift

标签 swift ios8 eventkit ekeventstore

当我的应用程序首次运行时,我尝试在 EKEventStore 中创建一个日历。我发现this tutorial但我对 Objective-C 的了解还不够多,无法将其转换为 Swift,而且从我所做的研究来看,我想知道这种方法在 ios8 中是否仍然可行。

最佳答案

尝试(注意这是提醒类型,但如果需要,您可以更改类型):

let eventStore = EKEventStore()
var yourReminderCalendar: EKCalendar?

func retrieveYourCalendar() {
    let calendars = eventStore.calendarsForEntityType(EKEntityTypeReminder)

    if(yourReminderCalendar == nil) {
        for calendar in calendars {
            if calendar.title == "Your Title" {
                yourReminderCalendar = (calendar as EKCalendar)
                break
            }
        }

        if(yourReminderCalendar == nil) {
            yourReminderCalendar = EKCalendar(forEntityType: EKEntityTypeReminder, eventStore: eventStore)
            yourReminderCalendar!.title = "Your Title"
            yourReminderCalendar!.source = eventStore.defaultCalendarForNewReminders().source
            var error: NSError?

            if(eventStore.saveCalendar(yourReminderCalendar, commit: true, error: &error)) {
                println("reminder cal saved")
            }
            else {
                //HANDLE REMINDER ERROR
            }
        }
    }
}

您需要检查授权:

    func verifyUserEventAuthorization() {
    switch EKEventStore.authorizationStatusForEntityType(EKEntityTypeReminder) {
    case .Authorized:
        ...
    case .Denied:
        ...
    case .NotDetermined:
        eventStore.requestAccessToEntityType(EKEntityTypeReminder, completion:
            { [weak self](granted: Bool, error: NSError!) -> Void in
                if granted {
                    ...
                }
                else {
                   ...
                }
        })
    case .Restricted:
        ...
    }
}

关于swift - 在 EKEventStore 中创建 EKCalendar - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29286359/

相关文章:

swift - @distinctUnionOfObjects 在 Swift 中可用吗?

swift - 来自 Swift 中字符串的类似 Heredoc 的语法

ios - 我可以将现有的 Popover 用于 UIImagePickerController 吗?

ios - IOS8 beta 中的共享扩展

ios - 如何使用 EventKit 删除某些/特定事件

ios - 隐藏状态栏但不隐藏自定义 UIWindow

ios - 特定 iOS 版本的 Swift 扩展

swift - IOS Realm Swift 其他 Realm 从不正确的线程访问

iOS EventKit 附加谓词

objective-c - 使用 EventKit 将新日历添加到 EKEventStore