【发布时间】:2015-08-03 08:41:52
【问题描述】:
我有下面的方法,我通过 NSDate() 来获取今天的所有结果。我试图在午夜到午夜得到结果,但它似乎不起作用。我注意到我的谓词输出如下:
"date >= CAST(460249200.000000, "NSDate") AND date
func GetAll(dayOfRecords: NSDate) -> NSArray {
var calendar = NSCalendar.currentCalendar()
var components = calendar.components(.CalendarUnitMonth | .CalendarUnitDay | .CalendarUnitYear, fromDate: dayOfRecords);
var midnightComponents = NSDateComponents();
midnightComponents.day = components.day;
midnightComponents.month = components.month;
midnightComponents.year = 2015;
midnightComponents.hour = 0;
var midnightDate = calendar.dateFromComponents(midnightComponents);
var twentyFourHoursLater = NSDateComponents();
twentyFourHoursLater.day = components.day;
twentyFourHoursLater.month = components.month;
twentyFourHoursLater.year = 2015;
twentyFourHoursLater.hour = 11;
twentyFourHoursLater.minute = 59;
var twentyFourHoursAhead = calendar.dateFromComponents(twentyFourHoursLater);
var predicate = NSPredicate(format: "(date >= %@) AND (date <= %@)", midnightDate!, twentyFourHoursAhead!);
var fetchRequest = NSFetchRequest(entityName: "Movement")
//filter seems to get 1987!!!??? fetchRequest.predicate = predicate;
fetchRequest.predicate = predicate;
var results:NSArray = managedObjectContext!.executeFetchRequest(fetchRequest, error: nil)!
return results;
}
【问题讨论】: