ios - 如何根据键对数组进行排序?

标签 ios arrays swift sorting

我有一个数组,其中包含两种类型的对象:已授予和未授予。我只是想对我的数组进行排序,以便先放置奖励对象,然后再放置其余对象。

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

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

在这些括号内,我想使用我的未包装值“awarded”来对成就进行排序,并将这些添加到开头,其余的添加到结尾。

我该怎么做呢?

最佳答案

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

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

要就地排序,请使用:

achievements.sort{ $0.userRelation["awarded"] < $1.userRelation["awarded"] }

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

关于ios - 如何根据键对数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40164158/

相关文章:

ios - 使用 Swift 将信息从 ViewController 传递到 ViewController

ios - [String : AnyObject] be an AnyObject, 但 [String : AnyObject? ] 怎么可能不行?

IOS App保存数据到服务器

Swift (4) 无法转换为泛型基类?

ios - App Store 版本号 - 更改方案/最佳实践

arrays - 隐藏重复的单元格而不使用辅助列

java - 如何在java中迭代字符串数组的一列

php - 在用[]添加值之前是否需要声明PHP数组?

objective-c - 当已经完全放大时,如何强制 UIScrollView 完全忽略放大手势?

ios - UIButton 的 contentEdgeInsets 支持 NSDirectionalEdgeInsets 吗?