我有一个有两种类型对象的数组:获奖和未奖励。我只是想对我的数组进行排序,以便首先放置获奖对象,然后放置其余对象。
以下是定义密钥“award”的代码:
if let awarded = achievements[indexPath.row].userRelation["awarded"] as? String where awarded != "<null>" { }
在这些括号中,我想使用我的未包装值“奖励”来分类成就并将其添加到开头,其余部分添加到最后。
我将如何做到这一点?
答案 0 :(得分:2)
你应该试用sort
函数,这非常有用。
let sortedAchievements = achievements.sorted{ $0.userRelation["awarded"] < $1.userRelation["awarded"] }
要进行排序,请使用:
achievements.sort{ $0.userRelation["awarded"] < $1.userRelation["awarded"] }
我建议重构你的模型。最好使用对象或结构而不是字典。另外awarded
应该是Bool
属性,而不是String
,对吗?