2013-12-05 3 views
1

Я пытаюсь получить все события с определенного EKCalendar, но если я вызываю eventsMatching Predicate: с предикатом, сгенерированным с predicateForEventsWithStartDate:endDate:calendars: и минусом 'startDate' Я получаю нулевой объект. Это ошибка? Или я не могу извлечь прошлые события?Прошедшие события в EKCalendar

EDIT (NSData decalarations):

[[self eventStore] predicateForEventsWithStartDate:[NSDate distantPast] endDate:[NSDate distantFuture] calendars:syncedCalendars] 
+0

Можете ли вы разместить объявление nsdate и nspredictate? – Greg

+0

Отредактировано по вашему запросу –

+0

Возможно, слишком длительный период времени. 'farPast' возвращает 30 декабря в 1-й год для меня, а' farFuture' возвращается 1 января в 4001 году. Попробовали ли вы использовать меньший промежуток времени, например, последние 3 месяца? –

ответ

0

Попробуйте изменить свой код, чтобы:

NSDate* futureDate = [NSDate dateWithTimeIntervalSinceNow:[[NSDate distantFuture] timeIntervalSinceReferenceDate]]; 
    [[self eventStore] predicateForEventsWithStartDate:[NSDate date] endDate: futureDate calendars:syncedCalendars] 

Кроме того, убедитесь, что ваш syncedCalendars является тип NSArray.

+0

Это не проблема, я хочу получить события PAST. Передача [NSDate date] не будет извлекать прошлые события. –

+0

Я думаю, что есть проблема с вызовом [NSDate distancePast]. Я тоже не мог сработать. Возможно, попробуйте вычесть интервал времени с [NSDate date], чтобы получить дату в прошлом. – Greg

+0

Да, что я сделал :) Но я не могу дальше этого 1/1/2010, даже с 29/12/2009 я получаю нулевой массив. –

Смежные вопросы