我看到很多人只是搜索用户的日历,然后抓住第一个可写的日历并开始在那里播放事件。我不喜欢这种做法;我更愿意尊重我的用户。
那么,您如何为应用创建自己的日历以用于其创建的事件?
答案 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!
}
此函数按名称"任意字符串"查找日历。当然,这可以是你喜欢的任何东西。如果它不存在,它将创建它。然后它会返回日历,因此您可以将其分配给日历变量,然后随意使用它。