【问题标题】:Creating an EKCalendar in EKEventStore - Swift在 EKEventStore 中创建 EKCalendar - Swift
【发布时间】:2015-03-26 18:38:31
【问题描述】:

我正在尝试在我的应用首次运行时在 EKEventStore 中创建一个日历。我找到了this tutorial,但我对Objective-C 的了解还不够,无法将其翻译成Swift,而且根据我所做的研究,我想知道这种方法在ios8 中是否仍然可行。

【问题讨论】:

    标签: swift ios8 eventkit ekeventstore


    【解决方案1】:

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

    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:
            ...
        }
    }
    

    【讨论】:

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