我有一个Event
表,用于保存NSString *action
和NSDate *date
。我想过滤从核心数据中检索到的数组,以显示在过去一小时和下一小时内执行的所有操作,而不是取决于它保存的日期。周二的例子,一个动作在16:00保存,但今天是星期五17:00,我仍然想要检索星期二保存的动作和该时间范围内的任何动作。
答案 0 :(得分:0)
对于遇到这个问题的人。更改了我的事件表以保存整数(操作的小时)并像这样检索它
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)
{
}