3 回答
TA贡献1820条经验 获得超2个赞
发表评论中已经说过的话:词典是“无序集合”。他们的键/值对根本没有任何顺序。期。
如果要有序集合,请使用除字典外的其他东西。(做到这一点的一种方法是使用单项词典的数组。)您还可以编写代码,将字典的键加载到可变数组中,对数组进行排序,然后使用键的排序后的数组来获取字典中的键/值对。所需的顺序。
您还可以创建自己的集合类型,该集合类型使用字符串作为索引并使项目保持排序。Swift使其简单明了,尽管在计算上会很昂贵。
TA贡献1895条经验 获得超7个赞
我确实喜欢这个
let stagesDict = NSDictionary()
if let strVal = sleepItemDict["stages"] as? NSDictionary {
stagesDict = strVal
let sortedKeys = (stagesDict.allKeys as! [String]).sorted(by: <)
var sortedValues : [Int] = []
for key in sortedKeys {
let value = stagesDict[key]!
print("\(key): \(value)")
sortedValues.append(value as! Int)
}
}
TA贡献1796条经验 获得超7个赞
将字典键加载到数组中并进行排序不是解决此问题的方法。因为在很多情况下,我们需要在没有任何逻辑的情况下进行订购,所以我只想拥有一个像这样的数组:c,d,a,e
。因此,唯一的方法是将序列数组放入json中,以注意到这是我想要的顺序。真烦人 用某种语言,他们没有这个麻烦。例如,它是PHP。
- 3 回答
- 0 关注
- 577 浏览
添加回答
举报