Как получить EKSource для iCloud?

Пытаюсь реализовать синхронизацию календаря iCloud для iOS.

Необходимо получить соответствующий объект EKSource, чтобы иметь возможность создавать там календарь. При переборе хранилищ тип хранилища iCloud — EKSourceTypeCalDAV, но тот же тип можно использовать и для других хранилищ.

Итак, как я могу указать, действительно ли соответствующий магазин предназначен для iCloud?

Сейчас используется текст описания, но это неправильное решение:

for (EKSource *source in store.sources) {
    if (source.sourceType == EKSourceTypeCalDAV) {
        if([source.title isEqualToString:@"iCloud"]) {
            caldavSource = source;
            break;
        } 
    }
}

person michael    schedule 27.11.2012    source источник


Ответы (1)


Вот как я создаю календарь в iCloud

EKSource* localSource=nil;

for (EKSource* source in self.eventStore.sources)
{
    if(source.sourceType == EKSourceTypeCalDAV && [source.title isEqualToString:@"iCloud"])
    {
        localSource = source;
        break;
    }

}
person Mohammad Rabi    schedule 27.11.2012
comment
Я вижу, но на самом деле source.title может редактировать пользователь из iPhone->Настройки->iCloud->Учетные записи->Описание. Поэтому сразу после редактирования этой строки вы не сможете создать календарь или получить соответствующий источник. Таким образом, вопрос заключался в том, как сделать его более универсальным и не слишком зависящим от пользователя. - person michael; 29.11.2012