按领域中的日期组件过滤

时间:2018-11-20 09:13:38

标签: swift date filter realm predicate

嗨,我想按年份过滤结果,我做了一些事情,但是它的返回类型是LazyFilterCollection <>。我如何解决它以获得结果?我认为可以使用NSPredicate完成,但是我不明白如何在谓词中使用日期组件。

这是我的训练模型。

going to load app settings
got appsettings
getting permissions
https://webapi.endpoint/
Angular is running in the development mode. Call enableProdMode() to enable the production mode.

这是我要过滤的表达式。

    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"
    }
}

1 个答案:

答案 0 :(得分:1)

不幸的是,事情并非如此简单。 Results.filter采用nspredicate或谓词格式字符串。

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

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