2012-11-09 113 views
0

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

回答

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) 
{ 

}