Будущие события EKEvents не работают

Здесь я перечисляю все события из календаря, но он не отображает события 2017 года, я знаю только 4 года, указанные выше, но нет записей за 2017 год.

EKEventStore *store = [[EKEventStore alloc] init]; [store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
            NSLog(@"acces to §Reminder granded %i ",granted);
            [parser parse];

        }];

        NSDate* startDate =  [NSDate dateWithTimeIntervalSinceNow:-1 * 60 * 60 * 24 * 365 * 4];
        NSDate* endDate =  [NSDate dateWithTimeIntervalSinceNow:[[NSDate distantFuture] timeIntervalSinceReferenceDate]];

        NSPredicate *fetchCalendarEvents = [store predicateForEventsWithStartDate:startDate endDate:endDate calendars:nil];

        eventList = [store eventsMatchingPredicate:fetchCalendarEvents];
        calanderDict =[[NSMutableDictionary alloc]init];

        for(int i=0; i < eventList.count; i++){

            NSLog(@"Event Title:%@", [[eventList objectAtIndex:i] title]);
            NSLog(@"Event StartDate:%@", [[eventList objectAtIndex:i] startDate]);
            NSLog(@"Event EndDate:%@", [[eventList objectAtIndex:i] endDate]);
            //    NSLog(@"Event Notes:%@", [[eventList objectAtIndex:i]notes]);
            NSLog(@"Event Identifier:%@", [[eventList objectAtIndex:i] calendarItemIdentifier]);

            [calanderDict setObject:[[eventList objectAtIndex:i] title] forKey:@"Title"];
            [calanderDict setObject:[[eventList objectAtIndex:i] startDate] forKey:@"Creation_date"];
            [calanderDict setObject:[[eventList objectAtIndex:i] endDate] forKey:@"End_date"];
            [calanderDict setObject:[[eventList objectAtIndex:i]calendarItemIdentifier] forKey:@"Identifier"];
            [calList addObject:[calanderDict copy]];
        }
        NSLog(@"Cal List %@",calList);

person Vivek Goswami    schedule 24.02.2016    source источник


Ответы (1)


Хотя это не задокументировано, метод predicateForEventsWithStartDate:endDate:calendars: рассматривает только события в течение 4 лет в будущем с даты начала.

PS: Пожалуйста, не делайте математику дат таким образом -1 * 60 * 60 * 24 * 365 * 4. NSCalendar и NSDateComponents предоставляют для этого более мощные и точные методы.

person vadian    schedule 24.02.2016