Как да получите EKSource за iCloud?

Опитвате се да внедрите iCloud Calendar синхронизация за iOS.

Трябва да получите съответния EKSource обект, за да можете да създадете календар там. Докато итерирате над магазините, типът за iCloud store е 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