gpt4 book ai didi

iphone - 如何在 Swift 中使用 CoreData 获取 n 天前的项目?

转载 作者:行者123 更新时间:2023-11-30 10:18:40 25 4
gpt4 key购买 nike

我正在尝试使用 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
}
}

最佳答案

假设 dateVideo 实体的一个属性,并且它包含此查询的有效值,

  • 您需要对 timeIntervalSinceNow: 使用负数才能获取过去的日期。您使用的是 future 的日期。
  • 一天超过 3600 秒,您可能指的是 86400 秒,或者是 2 天的两倍。但这仍然不是一个好方法。

获取 2 天前的日期的更好方法是使用 NSCalendar,而不是假设某个秒数。如果夏令时在过去 2 天开始或结束怎么办?您可以通过以下方式可靠地获取 2 天前的日期:

let twoDaysAgo = NSCalendar.currentCalendar().dateByAddingUnit(.DayCalendarUnit, 
value: -2, toDate: NSDate(), options: nil)

关于iphone - 如何在 Swift 中使用 CoreData 获取 n 天前的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28619720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com