我有一个包含两种类型的对象的数组:奖励对象和非奖励对象。我只是想对数组进行排序,以便将奖励对象放在第一位,其余的放在第二位。

这是定义键“awarded”的代码:

if let awarded = achievements[indexPath.row].userRelation["awarded"] as? String where awarded != "<null>" { }

在这些范围内,我想使用“已授予”的未包装的值对成就进行排序,并将其添加到开头,其余的添加到结尾。

我将如何去做?

最佳答案

您应该尝试使用sort函数,它非常有用。

let sortedAchievements = achievements.sorted{ $0.userRelation["awarded"] < $1.userRelation["awarded"] }

要对此进行排序,请使用以下命令:
achievements.sort{ $0.userRelation["awarded"] < $1.userRelation["awarded"] }

我建议重构您的模型。最好使用对象或结构代替字典。另外awarded应该是Bool属性,而不是String,对吗?

10-08 11:43