这段代码在iOS 6上运行良好,但在iOS 5上没有返回任何结果。使用分类方法将日期设置为今天。有人能发现什么奇怪的地方吗?谢谢!
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"KSJob"];
NSLog(@"today: %@", [NSDate today]);
// We only want to show upcoming jobs.
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"scheduledOn > %@", [NSDate today]]];
fetchRequest.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"scheduledOn" ascending:YES]];
self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:[(id)[[UIApplication sharedApplication] delegate]managedObjectContext] sectionNameKeyPath:@"dateToStringForSectionTitles"
cacheName:@"UpcomingJobs"];
self.fetchedResultsController.delegate = self;
NSDate分类方法:
+ (NSDate*) today
{
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *components = [cal components:( NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit ) fromDate:[[NSDate alloc] init]];
components.timeZone = [NSTimeZone localTimeZone];
components.hour = 0;
components.minute = 0;
NSDate *today = [cal dateByAddingComponents:components toDate:[[NSDate alloc] init] options:0];
return today;
}
好的,我想我找到了。由于某些原因,iOS 5似乎没有为这些日期字段插入任何内容。这就解释了很多。