Предикат вызова демона календаря не выполнен: Error Domain = EKCADErrorDomain Code = 1013

Сбой предикатного вызова демона календаря: Error Domain = EKCADErrorDomain Code = 1013 «Операция не может быть завершена. (Ошибка EKCADErrorDomain 1013.)»

Я пытаюсь получить напоминания из приложения по умолчанию.

if([eventStore respondsToSelector:@selector(requestAccessToEntityType:completion:)]) {
        // need user permission for iOS 6 and later
        [eventStore requestAccessToEntityType:EKEntityTypeReminder completion:^(BOOL granted, NSError *error) {
            if (granted) {
                //---- codes here when user allow your app to access theirs' calendar.
                [self performCalendarActivity:eventStore];
            }
            else {
                //----- codes here when user NOT allow your app to access the calendar.
            }
        }];
    }

---- Получение напоминания о дате -----

-(void)performCalendarActivity:(EKEventStore*)evtStore
{
    self.eventsList = [[NSMutableArray alloc] initWithArray:0];
    int seconds_in_day = 60*60*24;// 1 day = 60*60*24 seconds = 86400 seconds
    NSDate *endDate = [startDate dateByAddingTimeInterval:seconds_in_day];

    // use Dictionary for remove duplicates produced by events covered more one year segment
    NSMutableDictionary *eventsDict = [NSMutableDictionary dictionaryWithCapacity:1024];
    NSDate* currentStart = [NSDate dateWithTimeInterval:0 sinceDate:startDate];
    NSDate* currentFinish = [NSDate dateWithTimeInterval:seconds_in_day sinceDate:currentStart];

    if ([currentFinish compare:endDate] == NSOrderedDescending) {
        currentFinish = [NSDate dateWithTimeInterval:0 sinceDate:endDate];
    }
    NSMutableArray *events = [NSMutableArray arrayWithObjects: nil];

    NSArray *calendars = [eventStore
                          calendarsForEntityType:EKEntityTypeReminder];

    NSPredicate *predicate = [eventStore predicateForRemindersInCalendars:calendars];
   //NSPredicate *predicate = [eventStore predicateForIncompleteRemindersWithDueDateStarting:startDate ending:currentFinish calendars:calendars];
    [eventStore fetchRemindersMatchingPredicate:predicate completion:^(NSArray *ekReminders){
        [events addObjectsFromArray:ekReminders];
    }];
}

Я получаю эту ошибку: - Предикатный вызов демона календаря не выполнен: Error Domain = EKCADErrorDomain Code = 1013 «Операция не может быть завершена. (Ошибка EKCADErrorDomain 1013.)»

Пожалуйста помоги.


person HDdeveloper    schedule 01.08.2013    source источник
comment
Возможный дубликат сбой defaultCalendarForNewEvents   -  person jrc    schedule 02.10.2015


Ответы (1)


Предупреждение связано с тем, что пользователь не дал разрешения на доступ к напоминанию.

Быстрая починка:

  1. Перейти к настройкам
  2. Выберите Конфиденциальность
  3. Выберите напоминания
  4. Выберите свое приложение и разрешите доступ «Напоминания» к ВКЛ.
person HDdeveloper    schedule 01.08.2013
comment
Я решил эту проблему. Это потому, что мой EKEntityType неверен. Я установил тип EKEntityTypeReminder, но я прочитал EKEvent. Поэтому он жалуется. ваш метод правильный. спасибо. - person frank; 26.03.2014
comment
@frank, пожалуйста, если возможно, дайте мне демонстрацию ваших изменений, потому что. я использую эту демонстрацию - appcoda.com/ios-event-kit-programming- учебник но я дам то же, что и ваша ошибка, я попытаюсь, но не решу ее. - person Gami Nilesh; 30.10.2015