通过NSPredicate和NSDate使用核心数据

我有一个Event表,保存NSString *actionNSDate *date 。 我想过滤从核心数据中检索的数组,以显示在最后一小时和下一小时中执行的所有操作,而不取决于它保存的那一天。 星期二的例子在16:00保存了一个动作,但是今天是星期五17:00,我仍然想要检索星期二保存的动作以及该时间范围内的任何动作。

对于任何卡住这个问题。 改变我的事件表来保存一个整数(小时的行动),并像这样检索它

 NSDate *currentFullDate = [NSDate date]; NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *components = [calendar components:(NSHourCalendarUnit | NSMinuteCalendarUnit) fromDate:currentFullDate]; NSInteger currentHour = [components hour]; NSInteger hourAgo = currentHour -1; NSInteger nextHour = currentHour +1; NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Event"]; request.predicate = [NSPredicate predicateWithFormat:@"(hour >=%@) AND (hour <= %@)", hourAgo, nextHour]; request.fetchLimit = 5; NSError *error; NSArray *eventArray = [managedObjectContext executeFetchRequest:request error:&error]; for (Event *event in eventArray) { }