Я использую EventKit.framework для получения событий, хранящихся в EKEventStore
.
Как я могу получить только сегодняшние события, то есть с утра 00:00 до 23:59 (с 00:00 до 23:59). Часовой пояс может быть любым.
Я использую приведенный ниже фрагмент кода, но он также дает событие следующего дня. К сегодняшней дате добавляется 24 часа.
-(void) fetchEvents{
NSDate *startDate = [NSDate date] ;
//Create the end date components
NSDateComponents *tomorrowDateComponents = [[NSDateComponents alloc] init];
tomorrowDateComponents.day = 1;
NSDate *endDate = [[NSCalendar currentCalendar] dateByAddingComponents:tomorrowDateComponents
toDate:startDate
options:0];
// We will only search the default calendar for our events
NSArray *calendarArray = [NSArray arrayWithObject:self.defaultCalendar];
// Create the predicate
NSPredicate *predicate = [self.eventStore predicateForEventsWithStartDate:startDate
endDate:endDate
calendars:calendarArray];
// Fetch all events that match the predicate
NSMutableArray *events = [NSMutableArray arrayWithArray:[self.eventStore eventsMatchingPredicate:predicate]];
}
Как изменить NSPredicate
для вышеуказанного требования?
startDate
. Замените код, создающийstartDate
, чем-то, что на самом деле создает NSDate на сегодняшнюю полночь. - person Matthias Bauch   schedule 01.08.2014NSCalendar
методdateByAddingUnit
илиdateByAddingComponents
с даты начала. - person Rob   schedule 14.08.2014