Поиск EKEvents с помощью метода предиката ForEventsWithStartDate:endDate:calendars

Я использую predicateForEventsWithStartDate:endDate:calendars чтобы найти все события, которые происходят в данный 24-часовой период. Я хочу, чтобы все события происходили в этот день. Я изо всех сил пытаюсь обработать события, которые охватывают несколько дней - то есть, начинаются в 10 вечера и заканчиваются в 2 часа ночи на следующий день.

Похоже, что предикатный запрос учитывает только даты начала календарных событий при выполнении поиска. Он показывает мне события, которые начались в мое указанное время (и закончилось впоследствии), но не события, которые начались до определенного периода времени, но затем просочились в него.

Я мог бы просто установить дату начала раньше, а затем удалить события, которые заканчиваются до начала сегодняшнего дня.

Документы Apple не особенно проницательны:

(NSPredicate *)predicateForEventsWithStartDate:(NSDate *)startDate endDate:(NSDate *)endDate calendars:(NSArray *)calendars

 startDate: // The start date of the range of events fetched. 

 endDate: // The end date of the range of events fetched.

2 ответа

Почему бы вам не идентифицировать каждое событие, которое вы создали, с его идентификатором, а затем извлечь его позже, используя эти идентификаторы. Мне пришлось удалить некоторые из установленных событий, я идентифицировал их с идентификатором и удалил их. Посмотрите, может ли эта ссылка помочь.

Вы можете редактировать событие, как только вы правильно его определили.

Удаление EKEvent из календаря устройства по его идентификатору

Другие вопросы по тегам