gpt4 book ai didi

swift - 在 Realm 中按日期组件过滤

转载 作者:可可西里 更新时间:2023-11-01 01:56:06 29 4
gpt4 key购买 nike

您好,我想按 Realm 中的年数过滤结果,我做了一些事情,但它的返回类型是 LazyFilterCollection<>。我怎样才能修复它以获得结果?我认为可以使用 NSPredicate 来完成,但我不明白如何在谓词中使用日期组件。

这是我的训练模型。

    class Training: Object {

@objc dynamic var id = 0
@objc dynamic var date = NSDate()
var exercises = RealmSwift.List<TrainingExercise>()

convenience init(date: NSDate, exercise: TrainingExercise) {
self.init()
self.exercises.append(exercise)
}

override class func primaryKey() -> String? {
return "id"
}
}

这里是我试图过滤它的表达式。

let trainingsFilteredByYear = trainings.filter {
return Calendar.current.component(.year, from: $0.date as Date) == 2018
}

最佳答案

不幸的是,事情并没有那么简单。 Results.filter 采用 nspredicate 或谓词格式字符串。

let trainingsBetweenDates = realm.objects(Trainings.self).filter("date BETWEEN {%@, %@}", startDate, endDate)

您可以使用此处描述的方法自行设置边界日期:How do you create a swift Date object

关于swift - 在 Realm 中按日期组件过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53389662/

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