gpt4 book ai didi

ios - 检查是否在特定日期添加了 Realm 数据

转载 作者:行者123 更新时间:2023-11-28 23:23:35 25 4
gpt4 key购买 nike

如果在特定日期注册了任何锻炼,我正在尝试创建一个查找。

对象类如下所示:

class Workout: Object {

@objc dynamic var date: Date?
// List of exercises (to-many relationship)
var exercises = List<Exercise>()

}

class Exercise: Object {

@objc dynamic var name: String?
// List of sets (to-many relationship)
var sets = List<Set>()
var parentWorkout = LinkingObjects(fromType: Workout.self, property: "exercises")
}

在 Realm 中,我可以看到有一个注册日期为 2019-12-07 19:48:35 +0000;。所以我在我的 viewDidLoad 中添加了一个检查,如下所示:

let nowDate = Date()
func checkIfWorkoutHasBeenRegistered() {// Check if there already exist a workout today
let realm = try! Realm()

let todaysWorkouts = realm.objects(Workout.self).filter("date = %@", nowDate)
if todaysWorkouts.isEmpty {
print("No workout found")
} else {
print("Workout has been created")
}
}

但它给了我输出 No workout found,即使我今天注册了锻炼。有什么建议吗?

最佳答案

对于您当前的谓词,您将保存日期和时间与当前日期和时间进行比较,这肯定会有所不同,因为即使是几分之一秒的差异也会使它们不相等。相反,您可能想查看保存的日期是否在某个范围内。例如,如果您想要查看具有发生在“今天”的 date 的所有对象,您可以创建如下谓词:

let startOfDay = Calendar.current.startOfDay(for: Date())
let endOfDay = Calendar.current.date(byAdding: .day, value: 1, to: startOfDay) ?? Date()

let predicate = NSPredicate(format: "date >= %@ && date < %@", startOfDay as NSDate, endOfDay as NSDate)
let todaysWorkouts = realm.objects(Workout.self).filter(predicate)

关于ios - 检查是否在特定日期添加了 Realm 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59229239/

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