Я пытаюсь создать Календарь, а не событие календаря, но календарь. Я не могу получить локальный источник, и мое приложение падает.Создать календарь, не локальный источник, даже с iCloud off
Вот мой код:
let newCalendar = EKCalendar(for: .event, eventStore: eventStore)
newCalendar.title = "Some Calendar Name"
let sourcesInEventStore = eventStore.sources
newCalendar.source = sourcesInEventStore.filter{
(source: EKSource) -> Bool in
source.sourceType.rawValue == EKSourceType.local.rawValue
}.first!
У меня есть ICloud полностью выключен и до сих пор не может получить локальный источник.
Я также пытаюсь получить эту работу с ICloud включен, я придумал этот код, но он не работает
for let source in eventStore.sources
{
if(source.sourceType == EKSourceType.calDAV && source.title == "iCloud")
{
newCalendar.source = source
}
}
if(newCalendar.source == nil)
{
for let source2 in eventStore.sources
{
if(source2.sourceType == EKSourceType.local)
{
newCalendar.source = source2
}
}
}
Убеждайтесь, что попробуй. – user979331
Я пробовал это, я не получаю никаких ошибок, и теперь появляется предупреждение о том, можно ли использовать календарь, но до сих пор нет локального источника :(Он переходит в оператор else '// Как-то локальный календарь не был найден , обрабатывать ошибку соответственно 'Почему я не получаю никакого локального источника? – user979331
@ user979331 Предупреждение нормально, вам нужно попросить у пользователя разрешения использовать свой календарь. Я понятия не имею, почему локальных календарей не будет. Календари вообще в sourcesInEventStore? – JAL