如何为iOS应用程序创建一个iCloud日历以与swift一起使用?

时间:2015-06-13 16:33:38

标签: ios swift

我看到很多人只是搜索用户的日历,然后抓住第一个可写的日历并开始在那里播放事件。我不喜欢这种做法;我更愿意尊重我的用户。

那么,您如何为应用创建自己的日历以用于其创建的事件?

1 个答案:

答案 0 :(得分:1)

我想出了以下功能,假设您的应用可以访问用户日历:

let eventStore = EKEventStore()

func checkCalendar() -> EKCalendar {
    var retCal: EKCalendar?

    let calendars = eventStore.calendarsForEntityType(EKEntityTypeEvent) as! [EKCalendar] // Grab every calendar the user has
    var exists: Bool = false
    for calendar in calendars { // Search all these calendars
        if calendar.title == "Any String" {
            exists = true
            retCal = calendar
        }
    }

    var err : NSError?
    if !exists {
        let newCalendar = EKCalendar(forEntityType:EKEntityTypeEvent, eventStore:eventStore)
        newCalendar.title="Any String"
        newCalendar.source = eventStore.defaultCalendarForNewEvents.source
        eventStore.saveCalendar(newCalendar, commit:true, error:&err)
        retCal = newCalendar
    }

    return retCal!

}

此函数按名称"任意字符串"查找日历。当然,这可以是你喜欢的任何东西。如果它不存在,它将创建它。然后它会返回日历,因此您可以将其分配给日历变量,然后随意使用它。