我想在Realm Results
容器上执行Swift排序,如
let swiftArray = realm.objects(Parent).sort{$0.children.count > $1.children.count}
是否可以将swiftArray
转换回Results<T>
?我的其余代码使用Realm容器并将所有内容转换为Swift数组可能会降低性能。
或者,甚至更好,是否可以直接在Realm容器上使用Swift排序方法?
答案 0 :(得分:0)
不幸的是,目前还不可能。理想情况下,您可以使用.sorted("children.count")
通过Realm对项目进行排序,但在撰写本文时,Realm不支持键路径排序。
有an issue on the Realm GitHub帐户跟踪此问题。请到那里给它+1,让其他Realm工程师知道你想要它。 :)
如果您当前正在创建手动排序的Swift数组的解决方案是不可接受的,那么您可以考虑做的是向名为Parent
的{{1}}模型对象添加另一个属性并存储子项算在那里。虽然这确实意味着使您的数据略微冗余并且稍微增加维护,但您可以使用该属性对结果进行排序,同时将其完全保留在Realm中。 :)