我正在尝试使用CoreData查找超过2天的记录,以便进行一些处理。如何使用Swift查找超过两天的记录?
这是我的尝试:
class func findOldPics() {
var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
var context: NSManagedObjectContext = appDel.managedObjectContext!
var managedObject: NSManagedObject!
var fetchRequest = NSFetchRequest(entityName: "Video")
var date = NSDate(timeIntervalSinceNow: 3600)
fetchRequest.predicate = NSPredicate(format: "date <= %@", date)
if let fetchResults = appDel.managedObjectContext!.executeFetchRequest(fetchRequest, error: nil) as? [NSManagedObject] {
if fetchResults.count != 0{
NSLog("***************** found film! updating status %@", fetchResults)
} else {
println("***************** no films found")
} // else
}
}
答案 0 :(得分:1)
假设date
是Video
实体的一个属性,并且它包含此查询的有效值,
timeIntervalSinceNow:
的负数来获取过去的日期。你将来会用一个日期。 2天前获得约会的更好方法是使用NSCalendar
而不是假设一些秒数。如果夏令时在过去2天内开始或结束怎么办?您可以通过以下方式在2天前可靠地获取日期:
let twoDaysAgo = NSCalendar.currentCalendar().dateByAddingUnit(.DayCalendarUnit,
value: -2, toDate: NSDate(), options: nil)