В iOS 12 я пытаюсь составить список календарей. Я могу распечатать идентификаторы календаря, но все заголовки пусты. Что я делаю неправильно?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let status = EKEventStore.authorizationStatus(for: EKEntityType.event)
switch (status) {
case EKAuthorizationStatus.notDetermined:
EKEventStore().requestAccess(to: .event, completion: {
(granted: Bool, error: Error?) in
if granted != true {
print("Access not granted")
}
})
case EKAuthorizationStatus.authorized:
print("Access granted")
case EKAuthorizationStatus.restricted, EKAuthorizationStatus.denied:
print("Access restricted or denied")
}
print("Calendars:")
for c in EKEventStore().calendars(for: EKEntityType.event) {
print(" \(c.calendarIdentifier):\(c.title)")
}
}





Я не уверен, почему, но этот код показывает названия событий в iOS 12 Simulator.
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let status = EKEventStore.authorizationStatus(for: EKEntityType.event)
let eventStore = EKEventStore() //<-
switch (status) {
case EKAuthorizationStatus.notDetermined:
eventStore.requestAccess(to: .event, completion: {
(granted: Bool, error: Error?) in
if granted != true {
print("Access not granted")
}
})
case EKAuthorizationStatus.authorized:
print("Access granted")
case EKAuthorizationStatus.restricted, EKAuthorizationStatus.denied:
print("Access restricted or denied")
}
print("Calendars:")
for c in eventStore.calendars(for: EKEntityType.event) {
print(" \(c.calendarIdentifier):\(c.title)",c)
}
}
Возможно, вам нужно постоянно ссылаться на экземпляр EKEventStore при доступе к свойствам EKCalendar.
@GvSharma, вам лучше начать новую ветку вашей собственной проблемы, если вы не можете найти ответ в SO. Синхронизация - это совсем другое дело, чем эта проблема.
Это заняло у меня много времени, но это сработало даже на бета-версии iOS 13.
У меня проблемы с синхронизацией календаря в iOS 12