你好,
我正在开发Core Data应用程序,必须根据日期进行一些过滤.我进行了一些测试,看起来在比较NSDates时,Core Data也在比较日期的时间成分.
我的代码:
- (BOOL)hasSpeakersWithinDateRangeFrom:(NSDate *)startOfRange through:(NSDate *)endOfRange {
NSPredicate* dateRangePredicate = [NSPredicate predicateWithFormat:@"startOn <= %@ && endOn >= %@", startOfRange, endOfRange];
NSSet* speakersWithinDateRange = [self.speakers filteredSetUsingPredicate:dateRangePredicate];
if ([speakersWithinDateRange count] > 0)
return YES;
else
return NO;
}
Run Code Online (Sandbox Code Playgroud)
我有一个"方便"的方法,是一个单行的:
- (BOOL)hasSpeakersNow {
return [self hasSpeakersWithinDateRangeFrom:[NSDate date] through:[NSDate date]];
}
Run Code Online (Sandbox Code Playgroud)
当我运行一些基本测试时,它不能按计划工作,而且我可以告诉Core Data正在比较NSDate对象的时间组件和日期.
那么,我怎样才能重写上面的内容以忽略时间,只对当天过去敏感呢?
谢谢