Для моего приложения мне нужно создать календарь в учетной записи iCloud пользователя и добавить события в этот календарь.Поддержание ссылки на подтверждение синхронизации для календаря
Я Создание календаря с помощью этого:
let newCalendar = EKCalendar(forEntityType: EKEntityTypeEvent, eventStore: EventManager.sharedInstance.eventStore)
newCalendar.title = "MyAppCalendar"
let color = UIColor(red: CGFloat(arc4random_uniform(255))/255, green: CGFloat(arc4random_uniform(255))/255, blue: CGFloat(arc4random_uniform(255))/255, alpha: 1)
newCalendar.CGColor = color.CGColor
var mySource:EKSource?
for source in EventManager.sharedInstance.eventStore?.sources() as! [EKSource] {
if source.sourceType.value == EKSourceTypeCalDAV.value && source.title == "iCloud" {
mySource = source
break
}
}
if mySource == nil {
//crearting alert and displaying to user
return
}
else {
newCalendar.source = mySource!
}
var error:NSError?
if EventManager.sharedInstance.eventStore!.saveCalendar(newCalendar, commit: true, error: &error) {
let calendarName = newCalendar.title
let calendarIdentifier = newCalendar.calendarIdentifier
//save these in db and server
}else {
SharedConstants.handleErrors(error!)
}
Где EventManager
это мой класс, чтобы сохранить ссылку на EKEventStore
экземпляра объекта.
Но в документации Apple в нем говорится, что calendarIdentifier изменяется при синхронизации.
Итак, мой вопрос заключается в том, как сохранить ссылку на этот календарь?
Взгляните на этот ответ: http://stackoverflow.com/questions/15912137/what-exactly-constitutes-a-full-calendar-sync- в-ekcalendar/31631405 # 31631405. Наверное, это поможет. –
@Visput спасибо за эту ссылку, но как я могу преодолеть свою проблему? –