[英]Creating an EKCalendar in EKEventStore - Swift
I'm trying to create a single calendar into EKEventStore when the my app first runs. 我尝试在我的应用程序首次运行时在EKEventStore中创建一个日历。 I found this tutorial but I don't really know enough about Objective-C to translate it to Swift, and also from the research that I've done I'm wondering if this method is still possible in ios8. 我找到了本教程,但是我对Objective-C的了解还不足以将其转换为Swift,而且从我所做的研究中,我想知道在ios8中这种方法是否仍然可行。
Try (note this is for a reminder type, but you can just change the type if you need to): 尝试(请注意,这是针对提醒类型的,但是您可以根据需要更改类型):
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
}
}
}
}
You'll want to check for authorization: 您将要检查授权:
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:
...
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.