【发布时间】:2021-06-25 01:39:39
【问题描述】:
我正在尝试根据两个约束对字典(Word 对象)中的值进行排序。 Word 对象有两个相关字段:Int: count 和Bool: pinned。这些约束如下:首先,如果该词被固定(即value.pinned = true),我希望该词首先出现在排序数组中,而不管其count 字段如何。如果该词未固定,那么我希望该词根据其count 值在其他未固定词中按降序排序。
我最终实现了这样的排序功能:
sortedWordsArr = wordsDict.sorted {
if $0.value.pinned {
return $0.value.pinned && !$1.value.pinned
} else {
return $0.value.count > $1.value.count
}
}
但是,这似乎不起作用。当我固定单词时,它们不会移动到数组的开头。他们似乎随机地四处移动,有时根本没有。我浏览的论坛似乎回答了如何使用多个约束进行排序的问题,但我仍然不太确定如何为我的约束设置 sorted 闭包。
在我看来,第一个条件:return $0.value.pinned && !$1.value.pinned 将固定词 $0 与不一定固定的对象 $1 进行比较,因为 $1 只是指定为另一个词,不一定是我的固定词字典。这种思路不正确吗?如果是这样,我怎样才能根据这些约束正确地对我的字典进行排序?
感谢您阅读这篇文章,感谢您的帮助!
【问题讨论】:
标签: ios swift sorting dictionary anonymous-function