如何将Swift排序方法与Realm容器结合起来?

时间:2016-05-19 07:16:39

标签: swift sorting realm

我想在Realm Results容器上执行Swift排序,如

let swiftArray = realm.objects(Parent).sort{$0.children.count > $1.children.count}

是否可以将swiftArray转换回Results<T>?我的其余代码使用Realm容器并将所有内容转换为Swift数组可能会降低性能。

或者,甚至更好,是否可以直接在Realm容器上使用Swift排序方法?

1 个答案:

答案 0 :(得分:0)

不幸的是,目前还不可能。理想情况下,您可以使用.sorted("children.count")通过Realm对项目进行排序,但在撰写本文时,Realm不支持键路径排序。

an issue on the Realm GitHub帐户跟踪此问题。请到那里给它+1,让其他Realm工程师知道你想要它。 :)

如果您当前正在创建手动排序的Swift数组的解决方案是不可接受的,那么您可以考虑做的是向名为Parent的{​​{1}}模型对象添加另一个属性并存储子项算在那里。虽然这确实意味着使您的数据略微冗余并且稍微增加维护,但您可以使用该属性对结果进行排序,同时将其完全保留在Realm中。 :)