swift - 如何根据布尔属性对领域结果进行排序
问题描述
我已经尝试使用自定义模式进行排序。但是因为它返回一个数组。这没有帮助。因为我需要返回类型为结果。
例如:考虑以下:
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)
推荐阅读
- html - 使用 GET 请求时表单生成错误
- ruby-on-rails - 检查用户是否具有多个公司的订单创建权限 - ruby
- python - Flask Swagger UI 找不到 swagger.json 获取错误 Not Found /static/swagger.json Flask API Docker
- c++ - 交换数组的两个元素后计数反转
- r - 从另一个中减去因子水平
- python - 尽管输入了正确的密码,Windows MySQL 仍无法启动。没有错误显示。申请立即关闭
- discord.py - 你如何制作一个 magik discord.py 命令 python
- c# - Blazor 服务器和 CleanCode - ASP.NET Core 标识
- python - 在 Python 中将文件解析为特定内容
- javascript - 在打字稿类构造函数中为类属性赋值的最快方法