swift - 如何根据 bool 属性对 Realm 结果进行排序

标签 swift realm resultset realm-mobile-platform

我已经尝试过使用自定义模式进行排序。但是因为它返回一个数组。这没有帮助。 因为我需要返回类型为结果。

例如:考虑以下内容:

class A:Object {
    dynamic var name: String = "abc"
    dynamic var isStrong: Bool = false
}

现在我怎样才能对上面的结果进行排序

我试过了

realm.objects(a.self).sorted({ (o1, o2) -> Bool in
    return o1.isStrong && !o2.isStrong
})

这会产生一个排序数组。但我需要一个 realmResults 对象。 任何形式的帮助都会得到帮助。 谢谢。 :)

最佳答案

您可以使用 bool 属性对 Results 实例进行排序,但您不能实现返回 Results 的自定义排序函数。 Results 仅支持基于类的实例属性或基于多个实例属性的排序(如果将它们添加到 SortDescriptor)。

即使您不能定义自定义排序逻辑,您当前的逻辑似乎只实现了基于单个 bool 属性的降序排序,因此您可以使用 Realm 的内置 实现相同的结果>sorted(byKeyPath:,ascending:) 方法。

realm.objects(A.self).sorted(byKeyPath: "isStrong",ascending: false)

关于swift - 如何根据 bool 属性对 Realm 结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50602797/

相关文章:

ios - 使 UIAccessibilityTrait 可调整忽略双击(如按钮) swift

ios - 覆盖 initWithEntity :insertIntoManagedObjectContext:

swift - 将文本字段的内容作为电子邮件发送

image - react native /Realm : how to store an image in the database?

swift - 可解码 - 继承阻止解码器初始化合成

ios - 如何在 Realm Swift 中重新排序 UITableView 单元格?

swift - 如何快速修复 'Expression type ' CGSize' 在没有更多上下文' 的情况下不明确?

java - 使用结果集将大数据从数据库导出到 Excel

Java,MySQL - 线程异常 "main"java.sql.SQLException : Operation not allowed after ResultSet closed

java - ResultSet.getString(1) 抛出 java.sql.SQLException : Invalid operation at current cursor position